poj 1484 Blowing Fuses

简介:

这道题不知道怎么设置的,一直RE,网上发现大家也一样,不过他们是没有让输入结束就 break;的原因,我这是开始都输入完毕才开始处理也不行。。。

不知道为什么。。。改了一下 opt ,不用数组就A了。。。开始这个题目设置的有点bug。。。opt数组改大点,比如到1000,也A了

AC的代码:

#include <stdio.h>
#include <string.h>

int main()
{
	int devCon[25];
	int opt;
	int flag[25];
	int n,m,c;
	int i;
	int max,sum;
	int count=0;
	while(scanf("%d%d%d",&n,&m,&c))
	{
		if(n==0 && m==0 && c==0)
			return 0;
		
		//init
		memset(flag,0,sizeof(flag));
		sum=0;
		max=-1;
		//sum=0,max=-1;
		
		for(i=1;i<=n;i++)
			scanf("%d",&devCon[i]);
		
		for(i=1;i<=m;i++)
		{
			scanf("%d",&opt);

			if(flag[opt]==0)
			{
				sum+=devCon[opt];
				flag[opt]=1;
			}
			
			else
			{
				sum-=devCon[opt];
				flag[opt]=0;
			}
			
			if(sum>max)
				max=sum;
		}
		printf("Sequence %d\n",++count);
		if(max<=c)	//没被烧
		{
			printf("Fuse was not blown.\n");
			printf("Maximal power consumption was %d amperes.\n",max);
		}
		
		else		//保险丝烧掉了
			printf("Fuse was blown.\n");
		printf("\n");
	}
	
	return 0;
}


AC代码之二:

#include <iostream>
#include <string.h>

int devCon[25];
int opt[1000];
int flag[25];

int main()
{
	int n,m,c;
	int i;
	int max,sum;
	int count=0;
	while(scanf("%d%d%d",&n,&m,&c))
	{
		if(n==0 && m==0 && c==0)
			return 0;

		//init
		printf("Sequence %d\n",++count);
		memset(flag,0,sizeof(flag));
		sum=0;
		max=-1;
		//sum=0,max=-1;

		//输入
		for(i=1;i<=n;i++)
			scanf("%d",&devCon[i]);

		for(i=1;i<=m;i++)
			scanf("%d",&opt[i]);

		//开始处理
		for(i=1;i<=m;i++)
		{
			if(flag[opt[i]]==0)
			{
				sum+=devCon[opt[i]];
				flag[opt[i]]=1;
			}

			else
			{
				sum-=devCon[opt[i]];
				flag[opt[i]]=0;
			}

			if(sum>c)
				break;

			if(sum>max)
				max=sum;
		}
		if(i>m)	//没被烧
		{
			printf("Fuse was not blown.\n");
			printf("Maximal power consumption was %d amperes.\n",max);
		}

		else		//保险丝烧掉了
			printf("Fuse was blown.\n");
		printf("\n");
	}

	return 0;
}


相关文章
POJ 1936 All in All
POJ 1936 All in All
63 0
|
算法 数据建模 机器学习/深度学习
POJ 1012 Joseph
Joseph Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 53862   Accepted: 20551 Description The Joseph's problem is notoriously known.
818 0
|
测试技术
POJ 1001
此题用最朴素的思路实现即可,需模拟加法器,乘法器,最烦人的地方是特殊情形,如末位是小数点(12.^2=144,取小数点),整数末位是0(100^2=10000),0次幂,测试用例可能超出题目中说的范围,可能包含0次幂(100.0^0=0, 0.10^1=0.1)。
729 0
poj 3620
题意:给出一个矩阵,其中有些格子干燥、有些潮湿。       如果一个潮湿的格子的相邻的四个方向有格子也是潮湿的,那么它们就可以构成更大       的湖泊,求最大的湖泊。       也就是求出最大的连在一块儿的潮湿的格子的数目。
553 0
|
人工智能 BI
|
人工智能
POJ 1936 All in All
Description You have devised a new encryption technique which encodes a message by inserting between its characters randomly generated strings in a clever way.
758 0
poj 2337 Catenyms
点击打开链接poj2377 思路: 并查集+排序+欧拉道路 分析: 1 题目要求的是,是否可以组成欧拉道路并且输出字典序最小的方案 2 和别的题目不一样的是这一题的输出是最小的字典序,所以这里面是一个难点,那么我们应该怎么做呢?其实我们只要对输入的n个单词进行从小到达排序即可 3 然后我们先去判断该有向图是否是单连通的 4 我们去判断是否最多只有两个点的入度不等与出度,其余所有点的出度等于入度 5 如果都满足的话,进行dfs。
835 0