第一种写法(70pts):bi=ai+1−ai
第二种写法(100pts):bi=ai−ai−1
个人认为第二种写法有时候回比第一种写法多异或一个0。但是应该对答案没有影响,为什么第一种写法中只有70pts?
第一种写法:
#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
using namespace std;
ll n,a[1005],b[1005];
void work(){
cin>>n;
for(ll i=1;i<=n;i++)cin>>a[i];
for(ll i=1;i<n;i++)b[i]=a[i+1]-a[i];
ll asd=0;
for(ll i=n-1;i>=1;i-=2)asd^=b[i];
if(asd==0)cout<<"NIE"<<endl;
else cout<<"TAK"<<endl;
}
signed main(){
ios::sync_with_stdio(false);
ll T;cin>>T;
while(T--)work();
return 0;
}
第二种写法:
#include<bits/stdc++.h>
#define ll long long
#define endl '\n'
using namespace std;
ll n,a[1005],b[1005];
void work(){
cin>>n;
for(ll i=1;i<=n;i++)cin>>a[i];
for(ll i=1;i<=n;i++)b[i]=a[i]-a[i-1];
ll asd=0;
for(ll i=n;i>=1;i-=2)asd^=b[i];
if(asd==0)cout<<"NIE"<<endl;
else cout<<"TAK"<<endl;
}
signed main(){
ios::sync_with_stdio(false);
ll T;cin>>T;
while(T--)work();
return 0;
}