一个小岛-眼睛的颜色 算法题我的代码为什么不能通过???一个岛上有n个人

问题描述

眼睛的颜色 算法题我的代码为什么不能通过???一个岛上有n个人

一个岛上有n个人,每个人的眼睛要么是蓝色的,要么是黑色的,并且至少有一个人眼睛是蓝色的。每个人都知道至少一个人眼睛是蓝色的事实,但是不知道具体几个人眼睛是蓝色的。每天所有人互相见面,他们可以看到别人的眼睛的颜色,但是看不到自己眼睛的颜色。别人也不能告诉他眼睛的颜色。如果一个人推断出自己的眼睛是蓝色的,他就会在当天离开。求每个人离开在第几天。

输入格式:

多组数据,每组数据第一行是一个正整数n,表示人数。(2<=n<=10000)

接下来一行n个整数,每个整数是0或者1,0表示蓝色,1表示黑色。输入至少拥有一个0。

输出格式:

对每组数据输出一行n个空格分隔的整数,表明每个人在第几天离开。不会离开的人输出-1。

#include
int main()
{
int n,j,i,es,ar[10001];
while(scanf("%d",&n)!=EOF)
{
i=0;j=0;
while(j<n)
{
scanf("%d",&es);
if(!es) i++;
ar[j++]=es;
}
for(j=0;j<n;j++)
{
if(ar[j]) printf("-1");
if(!ar[j]) printf("%d",i);
if(j<n-1) printf(" ");
if(j==n-1) printf("n");
}
}
return 0;
}

#include
using namespace std;
int main()
{
int n,i;
int k=0;
cin>>n;
int p[10001];
for(i=0;i
{
cin>>p[i];
if(p[i]==0)
k++;
}
for(i=0;i<n;i++){
if(p[i]) cout<<"-1";
if(!p[i]) cout<<k;
if(i<n-1) cout<<" ";
if(j==n-1) printf("n");
}
return 0;
}

第一份是通过了的c代码,第二份是没通过的c++,我想问为什么c++通不过,显示的答案错误,我测过许多数据,没错误啊???

解决方案

请你重新发一下代码,现在的排版乱,而且缺了一些部分,看不清楚。
你是不是没在cin读入数据结束(返回0)时终止程序

时间: 2024-09-15 17:50:10

一个小岛-眼睛的颜色 算法题我的代码为什么不能通过???一个岛上有n个人的相关文章

一个让人头疼的算法题-如何安排会议

问题描述 题目:有20个会议室可供使用,使用者需在前一天提交申请,注明时间段比如(8,9)意为要求在8点-9点借用会议室,当然申请的人很多,时间段也不尽相同,管理员为了这事每天晚上都忙得焦头烂额.所以要聪明的你写一个算法帮助管理员解决这个问题,使会议室的安排得最合理? 解决方案 import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.uti

用于解答算法题目的Python3代码框架作者:杜逸先

前言 最近在实习,任务并不是很重,就利用闲暇时间使用Python3在PAT网站上刷题,并致力于使用Python3的特性和函数式编程的理念,其中大部分题目都有着类似的输入输出格式,例如一行读入若干个数字,字符串,每行输出多少个字符串等等,所以产生了很多重复的代码. Python代码 于是我就利用VS Code的代码片段功能编写了一个用于处理这些输入输出的代码框架,并加入了测试功能(写函数前先写测试时正确的事情).代码如下: """Simple Console Program W

一个算法题,求答案啊啊啊啊

问题描述 一个算法题,求答案啊啊啊啊 白班 09:00-18:00 通班 09:00-21:00 每个人每个月通班数量必须等于早中班和中晚班数量之和 早中班 09:00-15:00 中晚班 15:00-21:00 假设:每月按照30计算. 排班规则: 1.每个人每个月固定休息6天连续上班天数不超过7天. 2.每天各班次上班的人数最低需求:8个白班5个通班1个早中班,2个中晚班. 3.每个月每个人的通班天数安排不超过8天. 4.每个人每个月早中班和中晚班的天数之和需要与通班天数相等. 5.每月最多

csdn-acm的一道矩阵扩散题(c语言,好像是一个算法)

问题描述 acm的一道矩阵扩散题(c语言,好像是一个算法) 我只记得大概的思想.一个n×n的矩阵(应该有限定n),把abcd随机填放在矩阵中,然后照着某一个方向扩散(比如上下左右,a在一行一列,照着下扩散二行一列也是a),最后计算题目中abcd的个数.万能的csdn,有谁做过这道题吗,想找到题目,一直找不到,只记得思想大概是这样 解决方案 有哪位大神知道的吗!!! 解决方案二: 有哪位大神知道的吗!!! 解决方案三: 有哪位大神知道的吗!!! 解决方案四: 有哪位大神知道的吗!!!

求一个面试算法题答案。

问题描述 求一个面试算法题答案. 已知函数f()以相同的概率返回0或者1,求一个函数g()以相同的概率返回0-7之间的任意一个数字. 解决方案 其实这个题不难,可以考虑用2进制的方式来做.g(){return 4*f()+2*f()+f();} 希望能帮到你. 解决方案二: #includeint g(){srand(time(NULL));ret = rand()%8;return ret;}

时间复杂度-求教一个百度面试的算法题

问题描述 求教一个百度面试的算法题 一个有N个元素的一维数组(A[0],A[1], ..., A[n-1]),设计一个算法求解该数组最大子数组.(要求时间复杂度是O(n)) 解决方案 用动态规划http://www.cnblogs.com/xkfz007/archive/2012/05/17/2506299.html 解决方案二: http://www.ahathinking.com/archives/120.html 解决方案三: 哈,这道题啊,已经遇到好多次了,推荐一个很多人都在练习的网站,

面试题-今天朋友去面试看到一个算法题,求解

问题描述 今天朋友去面试看到一个算法题,求解 如题,完全没思路啊orz求指教,按照题目推测似乎是一个两个数之间距离为自身进行排序的算法,但是具体实现完全没思路,实在不行求个算法名也好啊orz 解决方案 public class Test { int n = 4; int[] arr = new int[2*n]; public void init(){//初始化 for(int i = 0; i<2*n; i++){ arr[i] = -1; } } public void sort(int g

想问朋友面试中遇到的一个算法题:

问题描述 想问朋友面试中遇到的一个算法题: Write a program in Java to assess a given string whether it complies with following patterns. Return true if a given string complies with these patterns else false. N = N1 + N2 N>= N1 >= N2 where N is the Nth element in the str

程序员面试金典算法题

空格替换 题目描述 请编写一个方法,将字符串中的空格全部替换为"%20".假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成. 给定一个string iniString 为原始的串,以及串的长度 int len, 返回替换后的string. 测试样例: "Mr John Smith",13 返回:"Mr%20John%20Smith" "Hello World&qu