Submission #1226361

#TimeUsernameProblemLanguageResultExecution timeMemory
1226361alexaaaArranging Shoes (IOI19_shoes)C++20
Compilation error
0 ms0 KiB
#include<iostream> #include<vector> #include<map> #include<queue> using namespace std; vector<int> st(500000,0); int add(int index, int r_begin, int r_end, int x){ if(r_begin == r_end && r_begin == x){ st[index] ++; return; } int mid = (r_begin+r_end)/2; if(x <= mid){ add(index*2+1, r_begin, mid, x); } else { add(index*2+2,mid+1,r_end,x); } st[index]=st[index*2+1]+st[index*2+2]; return; } int query(int index, int r_begin, int r_end, int l, int r){ if(r_end < l || r_begin > r){ return 0; } if(r_begin <= l && r_end <= r ){ return st[index]; } int mid = (r_begin + r_end)/2; return query(index*2+1,r_begin,mid,l,r) + query(index*2+2,mid+1,r_end,l,r); } void count_swaps(vector<int> S){ int n = S.size(); vector<int> seen(n,0); map<int, priority_queue<int, vector<int>, greater<>>> positive, negative; for(int i = 0; i < n; i++){ if(S[i] < 0){ negative[abs(S[i])].push(i); } else{ positive[S[i]].push(i); } } int res = 0; int pos; for(int j = 0; j < n; j ++){ if(!seen[j]){ if(S[j] > 0){ pos = negative[S[j]].top(); } else{ pos = positive[abs(S[j])].top(); } negative[abs(S[j])].pop(); positive[abs(S[j])].pop(); res = abs(j - pos); res -= query(0,0,n-1,j+1,pos); if(S[j]>0){ res ++; } seen[pos]=1; add(0,0,n-1,pos); } } return res; }

Compilation message (stderr)

shoes.cpp: In function 'int add(int, int, int, int)':
shoes.cpp:12:9: error: return-statement with no value, in function returning 'int' [-fpermissive]
   12 |         return;
      |         ^~~~~~
shoes.cpp:22:5: error: return-statement with no value, in function returning 'int' [-fpermissive]
   22 |     return;
      |     ^~~~~~
shoes.cpp: In function 'void count_swaps(std::vector<int>)':
shoes.cpp:80:12: error: return-statement with a value, in function returning 'void' [-fpermissive]
   80 |     return res;
      |            ^~~