problem description
有n個小朋友,每個小朋友手裡有一些糖塊,現在這些小朋友排成一排,編號是由1到n。現在給出m個數,能不能唯一的確定一對值l和r(l <= r),使得這m個數剛好是第l個小朋友到第r個小朋友手裡的糖塊數?
input
首先輸入乙個整數n,代表有n個小朋友。下一行輸入n個數,分別代表每個小朋友手裡糖的數量。
之後再輸入乙個整數m,代表下面有m個數。下一行輸入這m個數。
output
如果能唯一的確定一對l,r的值,那麼輸出這兩個值,否則輸出-1
example input
51 2 3 4 5
32 3 4
example output
2 4
#include #include #include #define maxstrlen 1000005
#define overflow -2
#define error -1
#define ok 1
typedef int celemtype;
typedef int statu;
typedef struct
hstring;
int next[maxstrlen];
int n, m;
int sum = 0;
statu initstring(hstring &t); //初始化串
statu strassign(hstring &t, celemtype str); //輸入串
statu strassign2(hstring &t, celemtype str); //輸入串
statu getnext(int s);
statu kmp(hstring t1, hstring t2, int t);
int main()
else
printf("-1\n");
return 0;
}statu initstring(hstring &t) //初始化串
statu strassign(hstring &t, celemtype str) //輸入串
return ok;
}statu strassign2(hstring &t, celemtype str) //輸入串
return ok;
}statu getnext(int s)
else
j = next[j];
}return ok;
}statu kmp(hstring t1, hstring t2, int t)
else
j = next[j];
}if(j >= t2.length)
return i - m + 1;
else
return error;
}
資料結構實驗之串三 KMP應用
time limit 1000ms memory limit 65536k 有疑問?點這裡 有n個小朋友,每個小朋友手裡有一些糖塊,現在這些小朋友排成一排,編號是由1到n。現在給出m個數,能不能唯一的確定一對值l和r l r 使得這m個數剛好是第l個小朋友到第r個小朋友手裡的糖塊數?首先輸入乙個整數...
資料結構實驗之串三 KMP應用
time limit 1000ms memory limit 65536k 有n個小朋友,每個小朋友手裡有一些糖塊,現在這些小朋友排成一排,編號是由1到n。現在給出m個數,能不能唯一的確定一對值l和r l r 使得這m個數剛好是第l個小朋友到第r個小朋友手裡的糖塊數?首先輸入乙個整數n,代表有n個小...
資料結構實驗之串三 KMP應用
time limit 1000ms memory limit 65536k 有n個小朋友,每個小朋友手裡有一些糖塊,現在這些小朋友排成一排,編號是由1到n。現在給出m個數,能不能唯一的確定一對值l和r l r 使得這m個數剛好是第l個小朋友到第r個小朋友手裡的糖塊數?首先輸入乙個整數n,代表有n個小...