Submission #7268331
Source Code Expand
Copy
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
long long int INF = 3e18;
double Pi = 3.1415926535897932384626;
//vector<ll> G[550010];
//vector<P> tree[500010];
priority_queue <ll> pql;
priority_queue <P> pqp;
//big priority queue
priority_queue <ll,vector<ll>,greater<ll> > pqls;
priority_queue <P,vector<P>,greater<P> > pqps;
//small priority queue
//top pop
int dx[8]={1,0,-1,0,1,1,-1,-1};
int dy[8]={0,1,0,-1,1,-1,-1,1};
char dir[] = "DRUL";
//ll bit[500005];
//↓,→,↑,←
#define p(x) cout<<x<<"\n";
#define el cout<<endl;
#define pe(x) cout<<(x)<<" ";
#define ps(x) cout<<fixed<<setprecision(25)<<x<<endl;
#define pu(x) cout<<(x);
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define CLEAR(a) a = decltype(a)();
ll mod = 1000000007;
/*
2000000011 is prime
2000000033 is prime
*/
ll rui(ll number1,ll number2){
if(number2 == 0){
return 1;
}else{
ll number3 = rui(number1,number2 / 2);
number3 *= number3;
number3 %= mod;
if(number2%2==1){
number3 *= number1;
number3 %= mod;
}
return number3;
}
}
ll gcd(ll number1,ll number2){
if(number1 > number2){
swap(number1,number2);
}
if(number1 == 0 || number1 == number2){
return number2;
}else{
return gcd(number2 % number1,number1);
}
}
void YES(bool condition){
if(condition){
p("YES");
}else{
p("NO");
}
return;
}
void Yes(bool condition){
if(condition){
p("Yes");
}else{
p("No");
}
return;
}
/*
ll fact[800005],rfact[800005];
void c3_init(){
fact[0] = rfact[0] = 1;
for(ll i=1; i<=800000; i++){
fact[i] = (fact[i-1]*i) % mod;
}
rfact[800000] = rui(fact[800000],mod - 2);
for(ll i=800000; i>=1; i--){
rfact[i-1] = rfact[i] * i;
rfact[i-1] %= mod;
}
return;}
ll c3(ll n,ll r){
return (((fact[n] * rfact[r]) % mod) * rfact[n-r]) % mod;}
*/
ll n,m,num,sum,a,b,c,d,e,g,h,w,i,j,q,r,l;
ll k,ans;
ll x[500005],y[500005],z[500005];
char s[50],t[50];
ll table[5000][5000];
ll played[1005];
bool today[1005];
int main(){
cin >> n;
for(i=0;i<n;i++){
for(j=0;j<n-1;j++){
cin >> table[i][j];
}
}
for(int day=0;day<=n*n;day++){
for(i=0;i<n;i++){
today[i] = false;
}
int endcount = 0;
bool update = false;
for(i=0;i<n;i++){
if(today[i])continue;
if(played[i] == n - 1)continue;
ll op = table[i][played[i]] - 1;
if(table[op][played[op]] == i+1 && !today[op]){
//pe(i);p(op);
played[i]++;
played[op]++;
update = true;
today[i] = true;
today[op] = true;
}
}
for(i=0;i<n;i++){
if(played[i] == n - 1){
endcount++;
}
}
if(endcount == n){
p(day + 1);
return 0;
}
if(!update){
p(-1);
return 0;
}
}
return 0;
}
Submission Info
Submission Time |
|
Task |
E - League |
User |
enjapma |
Language |
C++14 (GCC 5.4.1) |
Score |
500 |
Code Size |
3368 Byte |
Status |
AC |
Exec Time |
1797 ms |
Memory |
39808 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
500 / 500 |
Status |
|
|
Set Name |
Test Cases |
Sample |
a01, a02, a03 |
All |
a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23 |
Case Name |
Status |
Exec Time |
Memory |
a01 |
AC |
1 ms |
256 KB |
a02 |
AC |
1 ms |
256 KB |
a03 |
AC |
1 ms |
256 KB |
b04 |
AC |
1 ms |
256 KB |
b05 |
AC |
1 ms |
256 KB |
b06 |
AC |
1 ms |
256 KB |
b07 |
AC |
1 ms |
256 KB |
b08 |
AC |
1797 ms |
39808 KB |
b09 |
AC |
212 ms |
39808 KB |
b10 |
AC |
220 ms |
39808 KB |
b11 |
AC |
220 ms |
39808 KB |
b12 |
AC |
66 ms |
21120 KB |
b13 |
AC |
57 ms |
19072 KB |
b14 |
AC |
28 ms |
12928 KB |
b15 |
AC |
22 ms |
10880 KB |
b16 |
AC |
14 ms |
8704 KB |
b17 |
AC |
10 ms |
6656 KB |
b18 |
AC |
48 ms |
17024 KB |
b19 |
AC |
39 ms |
14976 KB |
b20 |
AC |
14 ms |
8704 KB |
b21 |
AC |
11 ms |
6656 KB |
b22 |
AC |
5 ms |
4608 KB |
b23 |
AC |
3 ms |
2560 KB |