Submission #00011


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <bits/stdc++.h>
using namespace std;
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define ll long long
#define next_per(v) next_permutation(v.begin(), v.end())
#define prev_per(v) prev_permutation(v.begin(), v.end())
#define fixed(v) fixed << setprecision(v)
#define total(n) ((n) * ((n) + 1) / 2)
#define combi(n) ((n) * ((n)-1) / 2) // n個の数の組み合わせ数
#define lcm(a, b) ((a) * (b) / __gcd(a, b))
// binery_search(all(v),key) = keyがあるかないかをboolで返す
// lower_bound(all(v),key) = key以上のイテレーターを返す(一番左)
// upper_bound(all(v),key) = keyより大きい要素のイテレーターを返す
// 最小値=max_element(v.begin(),v.end());
// 最大値=min_element(v.begin(),v.end());
template <class x>
x rng_total(x l, x r)
{ // l ~ rまでの数の総和
return ((l + r) * (r - l + 1) / 2);
}
template <class x>
x rng_combi(x l, x r)
{ //「l個の物からr個取った組み合わせ数」
x ans = 1;
l++;
for (x i = 1; i <= r; i++)
{
x sub = l - i;
ans *= sub;
ans /= i;
}
return (ans);
}
template <class x>
x dig_sum(x num)
{ // 各桁の総和
x ans = 0;
while (num > 0)
{
ans += num % 10;
num /= 10;
}
return (ans);
}
// [struct]--------------------------------------
// <UnionFind>
struct UnionFind {
// 親の要素とサイズを管理する変数
int group_cnt;
vector<int> parent, size;
// 変数の初期化
UnionFind(int n) {
parent.resize(n, -1);
size.resize(n, 1);
group_cnt = n;
}
// x の根を求める
int root(int x) {
// x が根のとき
if(parent[x] == -1) return x;
// 経路圧縮
return parent[x] = root(parent[x]);
}
// x と y の根が同じか
bool isSame(int x, int y) {
return root(x) == root(y);
}
// x と y のグループを併合する
bool unite(int x, int y) {
// x と y の根を取得
int rootX = root(x);
int rootY = root(y);
// x と y が同じグループのときは何もしない
if (rootX == rootY) return(false);
// union by size( y のサイズが小さくなるように調整 )
if (size[rootX] < size[rootY]) swap(rootX, rootY);
// y の親を x にする
parent[rootY] = rootX;
// 連結成分の個数を一つ減らす
group_cnt--;
// x のサイズに y のサイズを足す
size[rootX] += size[rootY];
return(true);
}
};
//-----------------------------------------------------
int main()
{
cin.tie(nullptr);
ios_base::sync_with_stdio(false);
//-----------------------------------------------------
int m, f, b;
cin >> m >> f >> b;
if (m + f < b) {
cout << "NA" << endl;
} else if (m >= b) {
cout << 0 << endl;
} else {
cout << b - m << endl;
}
return(0);
}
// sishou

ステータス

項目 データ
問題 0002 - 買い物
ユーザー名 ei2134
投稿日時 2023-07-31 09:33:42
言語 C++17
状態 Accepted
得点 4
ソースコード長 3190 Byte
最大実行時間 30 ms
最大メモリ使用量 644 KB

セット

セット 得点 Cases
1 ALL 4 / 4 *

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
in1.txt AC 19 ms 604 KB
1
in2.txt AC 14 ms 492 KB
1
in3.txt AC 17 ms 572 KB
1
in4.txt AC 30 ms 528 KB
1
in5.txt AC 23 ms 488 KB
1
in6.txt AC 19 ms 448 KB
1
in7.txt AC 22 ms 532 KB
1
in8.txt AC 20 ms 616 KB
1
in9.txt AC 25 ms 440 KB
1
in10.txt AC 20 ms 560 KB
1
in11.txt AC 18 ms 644 KB
1
in12.txt AC 18 ms 596 KB
1
in13.txt AC 21 ms 552 KB
1
in14.txt AC 23 ms 508 KB
1
in15.txt AC 18 ms 584 KB
1
in16.txt AC 25 ms 540 KB
1