Description
as we all know, ZhangYu(Octopus vulgaris) brother has a very famous speech - “Keep some distance from me”.
ZhangYu brother is so rich that everyone want to contact he, and scfkcf is one of them.
One day , ZhangYu brother agreed with scfkcf to contact him if scfkcf could beat him.
There are n digits(lets give them indices from 1 to n and name them a_1, a_2 … a_N) and some queries.
for each query:
- ZhangYu brother choose an index x from 1 to n.
- For all indices y ( y < x) calculate the difference b_y = a_x - a_y.
- Then ZhangYu brother calculate B_1 ,the sum of all by which are greater than 0 , and scfkcf calculate B_2 , the sum of all by which are less than 0.
if B_1 > |B_2| , ZhangYu brother won and did not agree with scfkcf to contact him;
else if B_1 is equals to |B_2| , ZhangYu brother would ignore the result;
else if B_1 < |B_2| , ZhangYu brother lost and agreed with scfkcf to contact him.
Input
The first line contains two integers n, m (1 \le n,m \le 100000) denoting the number of digits and number of queries. The second line contains n digits (without spaces) a_1, a_2, …, a_n.(0 \le a_i \le 9)
Each of next m lines contains single integer x (1 \le x \le n) denoting the index for current query.
Output
For each of m queries print “Keep some distance from me” if ZhangYu won, else print “Next time” if ZhangYu brother ignored the result, else print “I agree” if ZhangYu brother lost in a line - answer of the query.
Sample Input
10 3
0324152397
1
4
7
Sample Output
Next time
Keep some distance from me
I agree
Hint
It's better to use “scanf” instead of “cin” in your code.
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N = 100000 + 100;
int c[N][11];
char str[N];
int a[N];
int main()
{
int i,j,n,m,q;
while(scanf("%d%d",&n,&m)!=EOF) {
memset(c,0,sizeof(c));
scanf("%s",str+1);
for(i=1;i<=n;i++) {
q=str[i]-'0';
a[i]=q;
c[i][q]++;
for(j=0;j<10;j++) c[i][j]+=c[i-1][j];
}
while(m--) {
scanf("%d",&q);
int t1=0,t2=0,s1=0,s2=0;
for(i=0;i<a[q];i++) {
t1+=c[q][i];
s1+=c[q][i]*i;
}
for(i=a[q]+1;i<10;i++) {
t2+=c[q][i];
s2+=c[q][i]*i;
}
s1=t1*a[q]-s1;
s2=s2-t2*a[q];
// cout<<s1<<" "<<s2<<endl;
if(s1<s2) printf("I agree\n");
else if(s1>s2) printf("Keep some distance from me\n");
else printf("Next time\n");
}
}
return 0;
}