| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 83029 | sh25_shenpy | Clockwise Fence | C++ | 通过 | 1 MS | 260 KB | 1102 | 2026-01-19 20:42:30 |
#include <iostream> #include <string> using namespace std; int main() { int N; cin >> N; cin.ignore(); // 忽略第一行的换行符 while (N--) { string path; getline(cin, path); // 初始化坐标:起点(0,0) int x = 0, y = 0; long long area = 0; // 存储叉积和(避免溢出) for (char c : path) { // 记录当前坐标(用于计算叉积) int prev_x = x; int prev_y = y; // 根据方向更新坐标 switch (c) { case 'N': y++; break; case 'E': x++; break; case 'S': y--; break; case 'W': x--; break; } // 累加叉积项:prev_x * y - x * prev_y area += (long long)prev_x * y - (long long)x * prev_y; } // 判断方向:面积为负→CW,正→CCW if (area < 0) { cout << "CW" << endl; } else { cout << "CCW" << endl; } } return 0; }