# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
486806 | lordbaduk | Karte (COCI15_karte) | C++14 | 1 ms | 216 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |