题解 【[ABC163B] Homework】

Homework

题目大意:有一个叫\(Takahashi\)的人,有\(n\)天假期和\(m\)堆假期作业,第\(i\)堆作业需要做\(a_i\)天。如果能在假期里写完作业就输出还有多少天不用写作业(不可能滴),但如果写不完作业(太惨了)就输出\(-1\)

这道题其实只要计算一共要写几天作业,然后大小比较,在输出答案即可。

接下来看看实现:

Code:

#include <bits/stdc++.h>
#define REP(i, a, b) for (long long i = a; i <= b; ++i)
#define ll long long
using namespace std;

ll n, m, l, ans;

inline ll read(){						//快读 
	ll s = 0, w = 1;
	char ch = getchar();
	for (; ch < '0' || ch > '9'; ch = getchar()) w *= ch == '-' ? -1 : 1;
	for (; ch >= '0' && ch <= '9'; ch = getchar()) s = s * 10 + ch - '0';
	return s * w;
}

inline void work(){
	n = read(), m = read();				//输入n和m 
	REP(i, 1, m) l = read(), ans += l;	//l同题目中的a[i],ans记录一共要写多少天作业 
	if (ans > n) puts("-1");			//如果n天内写不完作业就输出-1
	else printf("%lld\n", n - ans);		//否则输出还有多少天不用写作业
}

int main(){
	work();
	return 0;
}
posted @ 2020-04-22 17:33  leoair  阅读(59)  评论(0编辑  收藏  举报