1 /* 2 题意:5种情况对应对应第i或j辆车翻了没 3 水题:其实就看对角线的上半边就可以了,vis判断,可惜WA了一次 4 3: if both cars turned over during the collision. 5 是指i,j两辆车,而不是全部 6 */ 7 #include <cstdio> 8 #include <algorithm> 9 #include <cstring> 10 #include <cmath> 11 #include <iostream> 12 using namespace std; 13 14 const int MAXN = 1e2 + 10; 15 const int INF = 0x3f3f3f3f; 16 int a[MAXN][MAXN]; 17 bool vis[MAXN]; 18 int ans[MAXN]; 19 20 int main(void) //Codeforces Round #303 (Div. 2) A. Toy Cars 21 { 22 //freopen ("A.in", "r", stdin); 23 24 int n; 25 while (scanf ("%d", &n) == 1) 26 { 27 memset (vis, false, sizeof (vis)); 28 for (int i=1; i<=n; ++i) 29 { 30 for (int j=1; j<=n; ++j) scanf ("%d", &a[i][j]); 31 } 32 33 for (int i=1; i<=n; ++i) 34 { 35 for (int j=i+1; j<=n; ++j) 36 { 37 if (a[i][j] == 3) 38 { 39 vis[i] = vis[j] = true; 40 } 41 else if (a[i][j] == 2) vis[j] = true; 42 else if (a[i][j] == 1) vis[i] = true; 43 } 44 } 45 46 int cnt = 0; 47 for (int i=1; i<=n; ++i) 48 { 49 if (!vis[i]) ans[++cnt] = i; 50 } 51 printf ("%d\n", cnt); 52 for (int i=1; i<=cnt; ++i) printf ("%d%c", ans[i], (i==cnt) ? ‘\n‘ : ‘ ‘); 53 } 54 55 return 0; 56 }
时间: 2024-10-23 15:50:53