A. Toy Cars
来源:互联网 发布:剑网三淘宝买金 编辑:程序博客网 时间:2024/06/08 12:49
Little Susie, thanks to her older brother, likes to play with cars. Today she decided to set up a tournament between them. The process of a tournament is described in the next paragraph.
There are n toy cars. Each pair collides. The result of a collision can be one of the following: no car turned over, one car turned over, both cars turned over. A car is good if it turned over in no collision. The results of the collisions are determined by an n × n matrix А: there is a number on the intersection of the і-th row and j-th column that describes the result of the collision of the і-th and the j-th car:
- - 1: if this pair of cars never collided. - 1 occurs only on the main diagonal of the matrix.
- 0: if no car turned over during the collision.
- 1: if only the i-th car turned over during the collision.
- 2: if only the j-th car turned over during the collision.
- 3: if both cars turned over during the collision.
Susie wants to find all the good cars. She quickly determined which cars are good. Can you cope with the task?
The first line contains integer n (1 ≤ n ≤ 100) — the number of cars.
Each of the next n lines contains n space-separated integers that determine matrix A.
It is guaranteed that on the main diagonal there are - 1, and - 1 doesn't appear anywhere else in the matrix.
It is guaranteed that the input is correct, that is, if Aij = 1, then Aji = 2, if Aij = 3, then Aji = 3, and if Aij = 0, then Aji = 0.
Print the number of good cars and in the next line print their space-separated indices in the increasing order.
3-1 0 00 -1 10 2 -1
21 3
4-1 3 3 33 -1 3 33 3 -1 33 3 3 -1
0
题意:n表示小车的数量,-1表示小车自己不会与自己相撞,1表示该行所表示的车号被撞坏,2表示该列所表示的车号被撞坏,3表示都被撞坏
法1:
#include<stdio.h>
#include<string.h>
int s[110][110], a[110], b[110], vis[110];
int main()
{
int n, i, j;
scanf("%d", &n);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d", &s[i][j]);
}
}
memset(vis,0,sizeof(vis));
memset(a,0,sizeof(a));
for(int i=0;i<n;i++)
{
a[i]=i;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(s[i][j]==1)
{
vis[i]=1;
}
else if(s[i][j]==2)
{
vis[j]=1;
}
else if(s[i][j]==3)
{
vis[i]=vis[j]=1;
}
}
}
int t=0, sum=0;
for(int i=0;i<n;i++)
{
if(vis[i]==0)
{
b[t++]=a[i];
sum++;
}
}
printf("%d\n", sum);
if(sum!=0)
{
for(int i=0;i<t;i++)
{
printf("%d", b[i]+1);
if(i<t-1)
printf(" ");
}
}
return 0;
}
法2
#include<stdio.h>
int main()
{
int n;
int s[110][110];
scanf("%d", &n);
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
scanf("%d", &s[i][j]);
}
}
int f;
int a[110], t=0, sum=0;
for(int i=0; i<n; i++)
{
f=1;
for(int j=0; j<n; j++)
{
if(s[i][j]==1 || s[i][j]==3)
{
f=0;
break;
}
}
if(f==1)
{
a[t++]=i+1;
sum++;
}
}
printf("%d\n", sum);
if(sum!=0)
{
for(int i=0; i<t; i++)
{
printf("%d", a[i]);
if(i<t-1)
printf(" ");
}
}
return 0;
}
- A. Toy Cars
- A. Toy Cars
- CodeForces 303A Toy Cars
- codeforces #303 div2 A. Toy Cars
- Codeforces Round #303 A. Toy Cars
- CodeForces - 545A Toy Cars (模拟)
- contest: Codeforces Round #303 (Div. 2), problem: (A) Toy Cars
- Codeforces Round #303 (Div.2)-A. Toy Cars(模拟)
- 周赛-Toy Cars
- Toy Cars (周赛2)
- BOZJ1528/POI 2005Toy Cars
- 【bzoj1528】 [POI2005]sam-Toy Cars
- 【bzoj1528】[POI2005]sam-Toy Cars
- bzoj 1528: [POI2005]sam-Toy Cars
- [bzoj1528/POI2005]sam-Toy Cars---贪心+堆
- BZOJ 1528 POI2005 sam-Toy Cars 堆+贪心
- 【BZOJ 1528】[POI2005]sam-Toy Cars 贪心+堆
- A. Toy Army
- 网络爬虫的实现
- oracle12创建用户错误ORA-65096: 公用用户名或角色名无效 invalid common user or role name
- 【javascript】 声明函数与函数表达式 的区别
- C99标准学习笔记(2)——整数提升
- 正则表达式代码生成
- A. Toy Cars
- Logistic回归
- 阿拉卡拉卡韩国
- 获取屏幕宽高和密度
- hdoj 48119 Mosaic (二维线段树 单点更新)
- 简易通讯录
- C++设计模式——原型模式
- 括号配对
- Top 3000+ Python Modules