Submission #445555

#TimeUsernameProblemLanguageResultExecution timeMemory
445555victoriadKarte (COCI15_karte)C++14
50 / 50
1 ms308 KiB
#include <fstream> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <utility> #include <queue> using namespace std; void comprobarcarta(int & PALO,bool & error,vector<bool>&cartas,string &s,int i){ int numero; if(s[i*3+1]=='0'){ numero=s[i*3+2]-49;//leemos el número,quitamos 49 ya que el 1 corresponde al 49 en la tabla char ascii y por tanto si hacemos -49 nos queda el número-1, que es el que nos interesa para trabajar con el vector de bool } else{ numero=s[i*3+2]+10-49;//leemos el número } if(cartas[numero]){//si ya hemos leido el número antes, ahora lo tenemos repetido-->error=true error=true; } else{ cartas[numero]=true;//si no lo habíamos leido antes, ahora lo marcamos como leido PALO--;//nos falta una carta menos de ese palo } } int main() { ios::sync_with_stdio(false); cin.tie(NULL); vector<bool>p(13,false); // al principio no tenemos ninguna carta, cuando tengamos una pondremos en su palo y número un true vector<bool>k(13,false); vector<bool>h(13,false); vector<bool>t(13,false); string s; int P=13,K=13,H=13,T=13;// las cartas que faltan de cada palo cin>>s; // el string de entrada bool error=false;//si error=true significa que tenemos una carta dos veces y tenemos que imprimir "GRESKA" int x=s.size(); int y; for(int i=0;i<x/3;i++){ //Pasamos el string de entrada if(error)break;//Si hay dos iguales error=false y ya no nos hace falta seguir mirando el string //mirmamos primero el palo y luego en comprabarcarta el número if(s[i*3]=='P'){ // Palo P comprobarcarta(P,error,p,s,i); } else if(s[i*3]=='K'){// Palo K comprobarcarta(K,error,k,s,i); } else if(s[i*3]=='H'){//Palo H comprobarcarta(H,error,h,s,i); } else{//Palo T comprobarcarta(T,error,t,s,i); } } if(!error){ cout<<P<<" "<<K<<" "<<H<<" "<<T; } else{ cout<<"GRESKA"; } return 0; }

Compilation message (stderr)

karte.cpp: In function 'int main()':
karte.cpp:41:9: warning: unused variable 'y' [-Wunused-variable]
   41 |     int y;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...