SGU 478. Excursion

acm.sgu.ru/problem.php
我更明白了一个事实,就是我是一个沙茶囧。。
这种题目我在当时比赛的时候居然用带上下界的最大流去做。结果悲剧死。。
实际上简单的贪心就可以了。。如果人变多了让boy回来否则让girl出去。。
Code:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<utility>
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
typedef pair<int,int> pi;
const int inf=~0U>>1;
int main()
{
freopen("in","r",stdin);
int b,g,n;
cin>>b>>g>>n;
vector<pi> A;
int now=g;
rep(i,n)
{
int x;cin>>x;
if(x>=now)
{
b-=x-now;
if(b<0) break;
A.push_back(pi(x-now,0));
now=x;
}
else
{
g-=now-x;
if(g<0) break;
A.push_back(pi(0,now-x));
now=x;
}
}
if(A.size()<n)
cout<<"ERROR"<<endl;
else
{
rep(i,n)
cout<<A[i].first<<" "<<A[i].second<<endl;
}
}

Leave a Reply

Your email address will not be published. Required fields are marked *