답안 #1023545

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1023545 2024-07-15T00:59:04 Z HD1 Kocka (COCI18_kocka) C++14
14 / 70
73 ms 5908 KB
/*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 -