제출 #331753

#제출 시각아이디문제언어결과실행 시간메모리
331753MohamedAhmed04Tenis (COCI20_tenis)C++14
35 / 110
1103 ms197644 KiB
#include <bits/stdc++.h> using namespace std ; const int MAX = 3000 + 10 ; int arr[3][MAX] , pos[3][MAX] ; int n ; int mark[MAX][MAX] , cnt[3] , ans[MAX] ; int main() { ios_base::sync_with_stdio(0) ; cin.tie(0) ; cin>>n ; for(int i = 0 ; i < 3 ; ++i) { for(int j = 1 ; j <= n ; ++j) { cin>>arr[i][j] ; pos[i][arr[i][j]] = j ; } } vector< array<int , 3> >v ; for(int i = 1 ; i <= n ; ++i) { for(int j = i+1 ; j <= n ; ++j) { for(int k = 0 ; k < 3 ; ++k) v.push_back({min(pos[k][i] , pos[k][j]) , max(pos[k][i] , pos[k][j]) , k}) ; } } sort(v.begin() , v.end()) ; for(auto &a : v) { int x = arr[a[2]][a[0]] ; int y = arr[a[2]][a[1]] ; if(mark[x][y]) continue ; mark[x][y] = mark[y][x] = 1 ; cnt[a[2]]++ ; ans[x]++ ; } cout<<cnt[0]<<" "<<cnt[1]<<" "<<cnt[2]<<"\n" ; for(int i = 1 ; i <= n ; ++i) cout<<ans[i]<<" " ; cout<<"\n" ; return 0 ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...