# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
321324 | 2020-11-12T05:54:07 Z | seedkin | 백점을 받아랏! (FXCUP4_hundred) | C++17 | 1 ms | 620 KB |
#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; continue; } } if(isCorret[i]) continue; for(int j = i+1; j < A+B+C; j++) { } } return str; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 1 ms | 620 KB | Execution killed with signal 13 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 1 ms | 620 KB | Execution killed with signal 13 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |