题解 【[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;
}