이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |