#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 ;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
364 KB |
Output is correct |
2 |
Correct |
1 ms |
364 KB |
Output is correct |
3 |
Correct |
26 ms |
3676 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
364 KB |
Output is correct |
2 |
Correct |
1 ms |
364 KB |
Output is correct |
3 |
Correct |
26 ms |
3676 KB |
Output is correct |
4 |
Execution timed out |
1103 ms |
197644 KB |
Time limit exceeded |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
364 KB |
Output is correct |
2 |
Correct |
1 ms |
364 KB |
Output is correct |
3 |
Correct |
26 ms |
3676 KB |
Output is correct |
4 |
Execution timed out |
1103 ms |
197644 KB |
Time limit exceeded |