【模拟】NCPC 2014 K Train passengers

来源:互联网 发布:淘宝衣服怎么上架宝贝 编辑:程序博客网 时间:2024/05/21 03:58

题目链接:

  http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1797

题目大意:

  有N个车站,火车一共可以坐M个人,每个车站下车Ai,上车Bi个人,在车站等待下一班Ci个人。问输入是否合法。

  合法:火车上的人不超过M,第一站不能有人下车,最后一站不能有人上车,火车满的时候才能有人在车站等下一班。

题目思路:

  【图论】

  签到水题。模拟到达每个车站的状态即可。




////by coolxxx//#include<bits/stdc++.h>#include<iostream>#include<algorithm>#include<string>#include<iomanip>#include<map>#include<stack>#include<queue>#include<set>#include<bitset>#include<memory.h>#include<time.h>#include<stdio.h>#include<stdlib.h>#include<string.h>//#include<stdbool.h>#include<math.h>#define min(a,b) ((a)<(b)?(a):(b))#define max(a,b) ((a)>(b)?(a):(b))#define abs(a) ((a)>0?(a):(-(a)))#define lowbit(a) (a&(-a))#define sqr(a) ((a)*(a))#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))#define mem(a,b) memset(a,b,sizeof(a))#define eps (1e-8)#define J 10#define mod 1000000007#define MAX 0x7f7f7f7f#define PI 3.14159265358979323#define N 104using namespace std;typedef long long LL;int cas,cass;int n,m,lll,ans;int a[N],b[N],c[N];bool work(){int i,j,sum=0;for(i=1;i<=n;i++){sum-=a[i];if(sum<0)return 0;sum+=b[i];if(sum>m)return 0;if(c[i]>0 && sum!=m)return 0;}if(b[n]!=0 || c[n]!=0 || sum!=0)return 0;return 1;}int main(){#ifndef ONLINE_JUDGE//freopen("1.txt","r",stdin);//freopen("2.txt","w",stdout);#endifint i,j,k;//for(scanf("%d",&cass);cass;cass--)//for(scanf("%d",&cas),cass=1;cass<=cas;cass++)//while(~scanf("%s",s+1))while(~scanf("%d",&m)){scanf("%d",&n);ans=0;for(i=1;i<=n;i++)scanf("%d%d%d",&a[i],&b[i],&c[i]);if(work())puts("possible");else puts("impossible");}return 0;}/*////*/


0 0
原创粉丝点击