# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
321319 | seedkin | 백점을 받아랏! (FXCUP4_hundred) | C++17 | 1 ms | 632 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "hundred.h"
#include <stdio.h>
#define aBit 1
#define bBit 2
#define cBit 4
#define aIdx 0
#define bIdx 1
#define cIdx 2
int dir[100][8][100]; // dir[idx][char bit][target idx] = char bit
std::string GetHundredPoints(int A, int B, int C) {
// int a, b, c;
// a = b = c = 0;
int isCorret[100];
int candi[100];
// char ans[100];
int bit[500];
bit['A'] = aBit;
bit['B'] = bBit;
bit['C'] = cBit;
// char c[5];
// c[aBit] = 'A';
// c[bBit] = 'B';
// c[cBit] = 'C';
std::string str = std::string(A, 'A') + std::string(B, 'B') + std::string(C, 'C');
for(int i =0; i < 100 ; i++) {
isCorret[i] = 0;
// ans[i] = 'A';
candi[i] = aBit | bBit | cBit;
}
for(int i =0; i< 100; i++) {
for(int j =0;j < 8; j++) {
for(int k =0; k < 100; k++) {
dir[i][j][k] = -1;
}
}
}
int result = Mark(str);
if(result == A+B+C) return str;
int prevResult = result;
for(int i = 0; i < A+B+C; i++) {
if(isCorret[i]) continue;
for(int j =i+1; j < A+B+C; j++) {
if(candi[i] == aBit || candi[i] == bBit || candi[i] == cBit) break;;
if(isCorret[j]) continue;
if(str[i] == str[j]) continue;
if((candi[i] & bit[str[j]]) == 0) continue;
if((candi[j] & bit[str[i]]) == 0) continue;
char temp = str[i];
str[i] = str[j];
str[j] = temp;
result = Mark(str);
if(result == A+B+C) return str;
int r = result - prevResult;
if(r ==0) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
dir[i][bit['A']][j] = bit['A'];
dir[i][bit['B']][j] = bit['B'];
dir[i][bit['C']][j] = bit['C'];
continue;
}
else if(r == 1) {
prevResult = result;
candi[i] &= ~bit[str[j]];
candi[j] &= ~bit[str[i]];
dir[i][bit[str[i]]][j] = candi[i] & (~bit[str[i]]);
dir[i][(candi[i] & (~bit[str[i]]))][j] = bit[str[j]];
continue;
}
}
if(isCorret[i]) continue;
for(int j = i+1; j < A+B+C; j++) {
}
}
return str;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |