Submission #1308714

#TimeUsernameProblemLanguageResultExecution timeMemory
1308714paulllolSorting (IOI15_sorting)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
int n,t1,t2,m,l,mid,r,temp,x,y,turn,val,cnt;
vector<int> v;
vector<pair<int,int>> s;
bool vs[200000];
void loop(int i){
    vs[i]=1;
    cnt+=1;
    if(vs[v[i]]==0){
        loop(v[i]);
    }
}
int main() {
    cin.tie(NULL)->sync_with_stdio(false);
    freopen("sorting.in", "r", stdin);
    freopen("sorting.out", "w", stdout);
    cin>>n;
    for (int i=0;i<n;i++) {
        cin>>t1;
        v.emplace_back(t1);
    }
    cin>>m;
    for (int i=0;i<m;i++) {
        cin>>t1>>t2;
        s.emplace_back(make_pair(t1,t2));
    }
    r=m;
    temp=0;
    while(l!=r){
        val=0;
        memset(vs,0,sizeof(vs));
        mid=(l+r)/2;
        if(mid<temp){
            for(int i=mid+1;i>temp;i--){
                x=s[i].first;
                y=s[i].second;
                if(x!=y){
                    v[x]^=v[y];
                    v[y]^=v[x];
                    v[x]^=v[y];
                }
            }
        }
        else{
            for(int i=temp;i<=mid;i++){
                x=s[i].first;
                y=s[i].second;
                if(x!=y){
                    v[x]^=v[y];
                    v[y]^=v[x];
                    v[x]^=v[y];
                }
            }
        }
        temp=mid;
        for(int i=0;i<n;i++){
            if(vs[i]==0){
                if(i!=v[i]){
                    vs[i]=1;
                    cnt=0;
                    loop(v[i]);
                    val+=cnt;
                }
            }
        }
        if(val>mid){
            l=mid+1;
        }
        else{
            r=mid;
        }
    }
    cout<<l;
}

Compilation message (stderr)

sorting.cpp: In function 'int main()':
sorting.cpp:16:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   16 |     freopen("sorting.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
sorting.cpp:17:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |     freopen("sorting.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccUH2TZD.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/ccqOY5EP.o:sorting.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccUH2TZD.o: in function `main':
grader.c:(.text.startup+0x3b1): undefined reference to `findSwapPairs(int, int*, int, int*, int*, int*, int*)'
collect2: error: ld returned 1 exit status