Submission #1023546

#TimeUsernameProblemLanguageResultExecution timeMemory
1023546HD1Kocka (COCI18_kocka)C++17
14 / 70
71 ms3844 KiB
/*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 true; } 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 true; } return false; } 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; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...