結果
問題 | No.1292 パタパタ三角形 |
ユーザー |
|
提出日時 | 2020-11-20 22:24:53 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 58 ms / 2,000 ms |
コード長 | 1,989 bytes |
コンパイル時間 | 835 ms |
コンパイル使用メモリ | 91,312 KB |
実行使用メモリ | 12,928 KB |
最終ジャッジ日時 | 2024-07-23 13:19:51 |
合計ジャッジ時間 | 1,860 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 |
ソースコード
#include <iostream>#include <vector>#include <string>#include <cmath>#include <algorithm>#include <map>#include <complex>#include <set>#include <tuple>#include <utility>using namespace std;typedef pair<int, int> P;int main(){ios::sync_with_stdio(false);cin.tie(nullptr);string S;cin >> S;set<P> s;s.insert(P(0, 0));int flag = 0;vector<char> vec(3);vec[0] = 3, vec[1] = 2, vec[2] = 1;int x = 0, y = 0;for(int i = 0; i < S.size(); i++){if(flag == 0){flag = 1;if(vec[S[i] - 'a'] == 3){x += 3;y += 4;for(int j = 0; j < 3; j++){if(vec[j] == 1) vec[j] = 3;else if(vec[j] == 2) vec[j] = 1;else vec[j] = 2;}}else if(vec[S[i] - 'a'] == 2){x -= 3;y += 4;for(int j = 0; j < 3; j++){if(vec[j] == 1) vec[j] = 2;else if(vec[j] == 2) vec[j] = 3;else vec[j] = 1;}}else{y -= 5;}}else{flag = 0;if(vec[S[i] - 'a'] == 3){x += 3;y -= 4;for(int j = 0; j < 3; j++){if(vec[j] == 1) vec[j] = 3;else if(vec[j] == 2) vec[j] = 1;else vec[j] = 2;}}else if(vec[S[i] - 'a'] == 2){x -= 3;y -= 4;for(int j = 0; j < 3; j++){if(vec[j] == 1) vec[j] = 2;else if(vec[j] == 2) vec[j] = 3;else vec[j] = 1;}}else{y += 5;}}s.insert(P(x, y));}cout << s.size() << endl;}