有一天,達達撿了一條價值連城的寶石項鍊,但是,乙個嚴重的問題是,他並不知道項鍊的主人是誰!在得知此事後,很多人向達達發來了很多郵件,都說項鍊是自己的,要求他歸還(顯然其中最多只有乙個人說了真話)。
達達要求每個人都寫了一段關於自己項鍊的描述: 項鍊上的寶石用數字0至9來標示。
乙個對於項鍊的表示就是從項鍊的某個寶石開始,順指標繞一圈,沿途記下經過的寶石,比如項鍊: 0-1-2-3 ,它的可能的四種表示是0123、1230、2301、3012。
達達現在心急如焚,於是他找到了你,希望你能夠編寫乙個程式,判斷兩個給定的描述是否代表同乙個項鍊(注意,項鍊是不會翻轉的)。
也就是說給定兩個項鍊的表示,判斷他們是否可能是一條項鍊。
輸入格式
輸入檔案只有兩行,每行乙個由字元0至9構成的字串,描述乙個項鍊的表示(保證項鍊的長度是相等的)。
輸出格式
如果兩個對項鍊的描述不可能代表同乙個項鍊,那麼輸出』no』,否則的話,第一行輸出乙個』yes』,第二行輸出該項鍊的字典序最小的表示。
資料範圍
設項鍊的長度為l,1≤l≤1000000
輸入樣例:
2234342423
2423223434
輸出樣例:
yes2234342423
#include
#include
using
namespace std;
const
int n =
2000010
;char a[n]
, b[n]
;int n;
intget_min
(char f)
else
}int res =
min(i, j)
;
f[res + n]=0
;return res;
}int
main()
return0;
}
acwing 158 項鍊 字串的最小表示 模板
兩個字串,判斷它們是不是同構的,如果同構,輸出最小表示。最小表示法模板題。pragma warning disable 4996 include include include include include include include includeusing namespace std ty...
158 項鍊 字串的最小表示
有一天,達達撿了一條價值連城的寶石項鍊,但是,乙個嚴重的問題是,他並不知道項鍊的主人是誰!在得知此事後,很多人向達達發來了很多郵件,都說項鍊是自己的,要求他歸還 顯然其中最多只有乙個人說了真話 達達要求每個人都寫了一段關於自己項鍊的描述 項鍊上的寶石用數字0至9來標示。乙個對於項鍊的表示就是從項鍊的...
158 項鍊 字串的最小表示
有一天,達達撿了一條價值連城的寶石項鍊,但是,乙個嚴重的問題是,他並不知道項鍊的主人是誰!在得知此事後,很多人向達達發來了很多郵件,都說項鍊是自己的,要求他歸還 顯然其中最多只有乙個人說了真話 達達要求每個人都寫了一段關於自己項鍊的描述 項鍊上的寶石用數字0至9來標示。乙個對於項鍊的表示就是從項鍊的...