1、判断是否能在每天找到一个时间使得总时间恰好为sumTime;
2、每天打印一个时间,使得总时间恰好为sumTime.
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <iomanip>
#include <algorithm>
#include <cctype>
#include <stack>
#include <queue>
#include <string>
#include <cstring>
#include <iomanip>
#include <set>
#include <vector>
#include <cstdio>
#include <stack>
#include <sstream>
#include <cstring>
#include <map>
using namespace std;
struct NODE{
int st,ed;
}node[31];
int main()
{
int d,sumTime;
int sumst=0,sumed=0;
cin>>d>>sumTime;
for(int i=0;i<d;i++)
{
cin>>node[i].st>>node[i].ed;
sumst+=node[i].st;
sumed+=node[i].ed;
}
if(sumst<=sumTime&&sumTime<=sumed)
{
printf("YES\n");
for(int i=0;i<d;i++)
{
while(node[i].ed>node[i].st&&sumed>sumTime)
{
node[i].ed--;
sumed--;//把多余的时间减掉
}
}
for(int i=0;i<d;i++)
printf(i==d-1?"%d\n":"%d ",node[i].ed);
}
else
printf("NO\n");
return 0;
}