# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
389599 | 2021-04-14T08:59:19 Z | faresbasbs | 정렬하기 (IOI15_sorting) | C++14 | 2 ms | 716 KB |
#include <bits/stdc++.h> #include "sorting.h" using namespace std; vector<int> v,v2,st,e,l,r; bool seen[200001]; int n,rt; void dfs(int curr){ if(curr != rt){ l.push_back(rt); r.push_back(curr); } seen[curr] = 1; if(!seen[v2[curr]]){ dfs(v2[curr]); } } bool work(int mid){ memset(seen,0,sizeof seen); l.clear(),r.clear(); v2 = v; for(int i = 0 ; i <= mid-1 ; i += 1){ swap(v2[st[i]],v2[e[i]]); } int num = n; for(int i = 0 ; i < n ; i += 1){ if(seen[i]){ continue; } num -= 1; rt = i; dfs(i); } return num <= mid; } int findSwapPairs(int N , int s[] , int m , int x[] , int y[] , int p[] , int q[]){ n = N; for(int i = 0 ; i < n ; i += 1){ v.push_back(s[i]); } for(int i = 0 ; i < m ; i += 1){ st.push_back(x[i]) , e.push_back(y[i]); } int first = -1 , last = m; while(last-first > 1){ int mid = (first+last)/2; if(work(mid)){ last = mid; }else{ first = mid; } } for(int i = 0 ; i < l.size() ; i += 1){ p[i] = l[i] , q[i] = r[i]; } return last-1; } /*int main(){ }*/
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Failed | 1 ms | 460 KB | MODEL SOLUTION IS WRONG |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Failed | 1 ms | 460 KB | MODEL SOLUTION IS WRONG |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Failed | 1 ms | 460 KB | MODEL SOLUTION IS WRONG |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Failed | 1 ms | 460 KB | MODEL SOLUTION IS WRONG |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 716 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 716 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |