5 条题解

  • 1
    @ 2025-4-19 22:05:40

    #include<bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f using namespace std; const int N=1e6+5; int n; ll a[N]; int lowbit(int x) { return x&(-x); } void add(int x) { for (int i=x;i<=n;i+=lowbit(i)) a[i]++; } ll sum(int x) { // cout<<x<<endl; ll s=0; for (int i=x;i>=1;i-=lowbit(i)) s+=a[i]; return s; } int main() { while(scanf("%d",&n)!=EOF) { n*=n; ll ans1=0,ans2=0; int x; memset(a,0,sizeof(a)); for (int i=1;i<=n;i++) { scanf("%d",&x); if (x) { ans1+=sum(n)-sum(x); add(x); } } memset(a,0,sizeof(a)); for (int i=1;i<=n;i++) { scanf("%d",&x); if (x) { ans2+=sum(n)-sum(x); add(x); } } if ((ans1%2)==(ans2%2)) printf("TAK\n"); else printf("NIE\n"); } return 0; }

        1. ~^^~

    信息

    ID
    20
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    131
    已通过
    97
    上传者