Submission details
Task:Milestone Counter
Sender:Game of Nolife
Submission time:2015-11-25 16:57:56 +0200
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.06 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.06 sdetails

Code

#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
typedef long long ll;
typedef long double ld;
ll t[1010];
ll x[1010];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,m;
cin>>m>>n;
for (int i=0;i<m;i++){
cin>>t[i];
}
for (int i=0;i<n;i++){
cin>>x[i];
}
set<pair<ll, ll> > vv;
vector<ll> v;
for (int i=0;i+m<=n;i++){
pair<ll, ll> lol;
lol.F=x[i+1]-x[i];
lol.S=t[1]-t[0];
ll g=__gcd(lol.F, lol.S);
lol.F/=g;
lol.S/=g;
//cout<<lol.F<<" "<<lol.S<<endl;
int f=0;
for (int j=2;j<m;j++){
ll b=t[j]-t[j-1];
ll a=x[i+j]-x[i+j-1];
ll gg=__gcd(a, b);
a/=gg;
b/=gg;
pair<ll, ll> tt={a, b};
if (tt!=lol){
//cout<<"fail "<<tt.F<<" "<<tt.S<<endl;
f=1;
break;
}
}
if (f==0){
if (!vv.count(lol)){
vv.insert(lol);
v.push_back(x[i+1]-x[i]);
}
}
}
cout<<v.size()<<endl;
sort(v.begin(), v.end());
for (ll ttt:v){
cout<<ttt<<" ";
}
cout<<endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
17 47
100 101 102 104 110 116 128 16...

correct output
11
1 6 36 216 1296 7776 46656 279...

user output
11
1 6 36 216 1296 7776 46656 279...

Test 2

Verdict: ACCEPTED

input
500 1000
100 102 104 106 108 110 112 11...

correct output
1
2

user output
1

Test 3

Verdict: ACCEPTED

input
12 40
1 2 4 8 16 32 64 128 256 512 1...

correct output
18
1 8192 16384 32768 65536 13107...

user output
18
1 8192 16384 32768 65536 13107...

Test 4

Verdict: ACCEPTED

input
2 1000
131345678912349 23234567891234...

correct output
999
3 5 7 9 11 13 15 17 19 21 23 2...

user output
999
3 5 7 9 11 13 15 17 19 21 23 2...

Test 5

Verdict: ACCEPTED

input
22 102
100 101 102 104 106 110 114 12...

correct output
0

user output
0

Test 6

Verdict: ACCEPTED

input
22 52
100 101 102 104 106 110 114 12...

correct output
16
1 2 4 8 16 32 64 128 256 512 1...

user output
16
1 2 4 8 16 32 64 128 256 512 1...