/*NOTAS PARA REGAÑAR A DIANA
==========================
0. REGLA FUNDAMENTAL: leer todos los problemas y empezar por el mas facil.
Solo si el A es super facil debes intentar resolverlo como tu primera opcion,
si no lo es busca el problema facil
1. REGLA FUNDAMENTAL: no estancarse en ningun problema
Esto debes respetarlo aunque TODO el mundo haya resuelto ese problema que a ti te falta.
Si no ves el error, ve a otro problema y regresa al problema fallido solo despues de un buen tiempo.
A veces asi es casi magico como uno encuentra el error
2. REGLA FUNDAMENTAL: no dejar los puntajes parciales para ultimo momento
Intenta pensar un problema para los 100 puntos maximo 15 minutos.
Si no llegas a la solción ve a los puntajes parcilaes
Los factores psicologicos importan en una competencia.
Vas a estar completamente desesperada si no estas en el top en las ultimas horas
Pretender sacar los 100 puntos a la primera es un LUJO
(solo el top puede darse lujos e incluso ellos se arriesgan cuando hacen eso)
3. REALIDAD: lo peor que te puede pasar en una competencia es que saques
un resultado que esta muy lejos de lo que deberías tener
============================
ERRORES COMUNES
RT accedes a una dimension de memoria que no existe o
estas dandole un valor que no corresponde al tipo de dato
estas asignando mas memoria de lo permitido o menos de los necesario
o estas dando menos memoria de la necesaria
WA fijate en modulos, variable globales, indices,
* siempre ver desde donde te piden indezarlo y desde donde indexas
* siempre limpia todo por siacaso
*/
//we all are lost trying to be someone
#include<bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0); cin.tie(0);
#define sz(x) ll(x.size())
#define all(x) x.begin(),x.end()
#define pb push_back
#define ff first
#define ss second
using namespace std;
typedef unsigned long long ll;
const ll MAX=1000000;
const int inf=1e7;
vector<int> A[5];
int n;
set<int> comodin;
bool check(){
comodin.clear();
vector<int>U=A[2];
vector<int>L=A[0];
vector<pair<int,int>> first;
for(int i=0; i<n; i++){
first.pb({L[i],i});
}
sort(all(first));
//for(auto it:first){
//cout<<'('<<it.ff<<','<<it.ss<<')'<<' ';
//}
//cout<<'\n';
int j=0;
for(int i=0; i<n; i++){
while(j<n and first[j].ff<i){
j++;
}
int primer=first[j].ss;
if(first[j].ff!=i)primer=inf;
//cout<<primer<<'\n';
if(primer==U[i]){
comodin.insert(U[i]);
continue;
}
if(primer>U[i]){
if(comodin.count(U[i]))continue;
else return false;
}
else return false;
}
return true;
}
void turnleft(){
vector<int> x=A[0];
vector<int> y=A[1];
A[0]=A[2];
reverse(all(A[0]));
A[1]=A[3];
reverse(all(A[1]));
A[2]=y;
A[3]=x;
//for(int i=0; i<4; i++){
//for(int j=0; j<n; j++){
// cout<<A[i][j]<<' ';
//}
//cout<<'\n';
//}
return;
}
bool die(){
for(int i=0; i<n; i++){
if(A[0][i]==inf and A[1][i]==inf) continue;
if(A[0][i]+A[1][i]>=n)return false;
}
for(int i=0; i<n; i++){
if(A[2][i]==inf and A[3][i]==inf) continue;
if(A[2][i]+A[3][i]>=n)return false;
}
return true;
}
void solve(){
int a;
cin>>n;
for(int i=0; i<4; i++){
for(int j=0; j<n; j++){
cin>>a;
if(a == -1) a=inf;
A[i].pb(a);
}
}
if(!die()){
cout<<"NE"<<'\n';
return;
}
for(int i=0; i<4; i++){
if(!check()){
cout<<"NE"<<'\n';
return;
}
turnleft();
}
cout<<"DA"<<'\n';
return;
}
int main(){
solve();
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Correct |
1 ms |
344 KB |
Output is correct |
3 |
Correct |
1 ms |
348 KB |
Output is correct |
4 |
Correct |
1 ms |
392 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
2 |
Incorrect |
1 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
69 ms |
5748 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
73 ms |
5908 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
64 ms |
5736 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |