# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
486806 | lordbaduk | Karte (COCI15_karte) | C++14 | 1 ms | 216 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <fstream>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <utility>
#include <queue>
using namespace std;
int main() {
vector <vector<bool> > Palos(4, vector <bool> (13,false)); // al principio no tenemos ninguna carta, cuando tengamos una pondremos en su palo y número un true
string s;
vector <int> numPalos (4,13);
int palo;
// 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();
for(int i = 0; (!error) && (i < x/3); i++){ //Pasamos el string de entrada
//mirmamos primero el palo y luego en comprabarcarta el número
int numero = (s[i*3+1]-'0')*10+(s[i*3+2]-'0');
if (s[i*3]=='P') {
palo=0;
} else if (s[i*3]=='K') {
palo=1;
} else if (s[i*3]=='H') {
palo=2;
} else {
palo=3;
}
if(Palos[palo][numero]) {//si ya hemos leido el número antes, ahora lo tenemos repetido-->error=true
error = true;
}
else{
Palos[palo][numero] = true;
//si no lo habíamos leido antes, ahora lo marcamos como leido
numPalos[palo]--;//nos falta una carta menos de ese palo
}
}
if(!error){
cout << numPalos[0] << " " << numPalos[1] << " " << numPalos[2] << " " << numPalos[3];
}
else{
cout << "GRESKA";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |