結果
| 問題 | 
                            No.197 手品
                             | 
                    
| コンテスト | |
| ユーザー | 
                             _shim0123_
                         | 
                    
| 提出日時 | 2015-05-02 21:38:29 | 
| 言語 | C++11(廃止可能性あり)  (gcc 13.3.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 2 ms / 1,000 ms | 
| コード長 | 821 bytes | 
| コンパイル時間 | 567 ms | 
| コンパイル使用メモリ | 64,256 KB | 
| 実行使用メモリ | 5,376 KB | 
| 最終ジャッジ日時 | 2024-07-20 03:37:27 | 
| 合計ジャッジ時間 | 1,889 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 43 | 
ソースコード
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
void swap(char* x, char* y) {
	char tmp = *x;
	*x = *y;
	*y = tmp;
}
int main(void) {
	string be, af;
	long long N;
	int num = -1;
	int cnt = 0;
	cin >> be >> N >> af;
	for(int i = -1; i <= 1; i++){
		string tmp = be;
		for(int j = -1; j <= 1; j++){
			swap(tmp[i*j + 1], tmp[1]);
			if(tmp == af){
				if(abs(i) *(j + 3) / 2 == N){
					cout << "FAILURE" << endl;
					return 0;
				}
				if(num == -1){
					num=abs(i) *(j + 3) / 2;
				}
				else{
					num = min(abs(i) *(j + 3) / 2, num);
				}
			}
		}
	}
	if(num == -1 || N - num < 0){
		cout << "SUCCESS" << endl;
	}
	else if(af[0] == af[2] && af[0] != af[1]&&N - num == 1){
			cout << "SUCCESS" << endl;
	}
	else{
		cout << "FAILURE" << endl;
	}
	return 0;
}
            
            
            
        
            
_shim0123_