# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
445555 |
2021-07-18T16:46:44 Z |
victoriad |
Karte (COCI15_karte) |
C++14 |
|
1 ms |
308 KB |
#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
karte.cpp: In function 'int main()':
karte.cpp:41:9: warning: unused variable 'y' [-Wunused-variable]
41 | int y;
| ^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
0 ms |
204 KB |
Output is correct |
4 |
Correct |
0 ms |
308 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
0 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |