Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7628f50

Browse files
adds 2 1000 rated
1 parent fa3f8ca commit 7628f50

File tree

2 files changed

+283
-0
lines changed

2 files changed

+283
-0
lines changed
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
// Type definitions
5+
typedef long long ll;
6+
typedef pair<int, int> pii;
7+
typedef pair<ll, ll> pll;
8+
typedef vector<int> vi;
9+
typedef vector<ll> vl;
10+
typedef vector<pii> vpii;
11+
typedef vector<pll> vpll;
12+
typedef vector<vi> vvi;
13+
typedef vector<vl> vvl;
14+
15+
// Macros
16+
#define nline "\n"
17+
#define all(x) (x).begin(), (x).end()
18+
#define rall(x) (x).rbegin(), (x).rend()
19+
#define sz(x) (int)(x).size()
20+
#define pb push_back
21+
#define mp make_pair
22+
#define F first
23+
#define S second
24+
#define forn(i, n) for (int i = 0; i < int(n); i++)
25+
#define forr(i, a, b) for (int i = a; i <= b; i++)
26+
#define ford(i, a, b) for (int i = a; i >= b; i--)
27+
#define elasped_time 1.0 * clock() / CLOCKS_PER_SEC
28+
29+
// Constants
30+
const int MOD = 1e9 + 7;
31+
const ll INF = 1e18;
32+
const double EPS = 1e-9;
33+
const double PI = acos(-1);
34+
35+
ll mod_add(ll a, ll b, ll m = MOD) { return ((a % m) + (b % m)) % m; }
36+
ll mod_sub(ll a, ll b, ll m = MOD) { return ((a % m) - (b % m) + m) % m; }
37+
ll mod_mul(ll a, ll b, ll m = MOD) { return ((a % m) * (b % m)) % m; }
38+
39+
ll mod_pow(ll base, ll exp, ll m = MOD)
40+
{
41+
ll res = 1;
42+
base %= m;
43+
while (exp > 0)
44+
{
45+
if (exp & 1)
46+
res = mod_mul(res, base, m);
47+
base = mod_mul(base, base, m);
48+
exp >>= 1;
49+
}
50+
return res;
51+
}
52+
53+
ll mod_inv(ll a, ll m = MOD)
54+
{
55+
return mod_pow(a, m - 2, m); // Only works if m is prime
56+
}
57+
58+
ll mod_div(ll a, ll b, ll m = MOD)
59+
{
60+
return mod_mul(a, mod_inv(b, m), m);
61+
}
62+
63+
// Binary exponentiation (for non-modular calculations)
64+
ll binpow(ll base, ll exp)
65+
{
66+
ll res = 1;
67+
while (exp > 0)
68+
{
69+
if (exp & 1)
70+
res *= base;
71+
base *= base;
72+
exp >>= 1;
73+
}
74+
return res;
75+
}
76+
77+
/************/
78+
int findTarget(vi &a, vi &b)
79+
{
80+
81+
forn(i, a.size())
82+
{
83+
if (b[i] != -1)
84+
return (a[i] + b[i]);
85+
}
86+
87+
return 0;
88+
}
89+
void solve()
90+
{
91+
92+
int n, k;
93+
94+
cin >> n >> k;
95+
96+
vi a(n, 0), b(n, 0);
97+
98+
for (auto &i : a)
99+
cin >> i;
100+
101+
for (auto &i : b)
102+
cin >> i;
103+
104+
int cnt = count(all(b), -1);
105+
106+
if (cnt == n)
107+
{
108+
int maxNum = *max_element(all(a));
109+
int minNum = *min_element(all(a));
110+
111+
cout << ((k + minNum) - maxNum + 1) << nline;
112+
}
113+
else
114+
{
115+
116+
int x = findTarget(a, b);
117+
forn(i, n)
118+
{
119+
120+
if (b[i] != -1)
121+
{
122+
if (a[i] + b[i] != x)
123+
{
124+
cout << 0 << nline;
125+
return;
126+
}
127+
}
128+
else
129+
{
130+
int target = x - a[i];
131+
if (target < 0 || target > k)
132+
{
133+
cout << 0 << nline;
134+
return;
135+
}
136+
}
137+
}
138+
139+
cout << 1 << nline;
140+
}
141+
}
142+
int main()
143+
{
144+
ios_base::sync_with_stdio(0);
145+
cin.tie(0);
146+
cout.tie(0);
147+
148+
#ifndef ONLINE_JUDGE
149+
freopen("./outputs/input.txt", "r", stdin);
150+
freopen("./outputs/output.txt", "w", stdout);
151+
#endif
152+
153+
int t;
154+
cin >> t;
155+
while (t--)
156+
solve();
157+
158+
return 0;
159+
}
160+
// Explanation
161+
/* */
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
// Type definitions
5+
typedef long long ll;
6+
typedef pair<int, int> pii;
7+
typedef pair<ll, ll> pll;
8+
typedef vector<int> vi;
9+
typedef vector<ll> vl;
10+
typedef vector<pii> vpii;
11+
typedef vector<pll> vpll;
12+
typedef vector<vi> vvi;
13+
typedef vector<vl> vvl;
14+
15+
// Macros
16+
#define nline "\n"
17+
#define all(x) (x).begin(), (x).end()
18+
#define rall(x) (x).rbegin(), (x).rend()
19+
#define sz(x) (int)(x).size()
20+
#define pb push_back
21+
#define mp make_pair
22+
#define F first
23+
#define S second
24+
#define forn(i, n) for (int i = 0; i < int(n); i++)
25+
#define forr(i, a, b) for (int i = a; i <= b; i++)
26+
#define ford(i, a, b) for (int i = a; i >= b; i--)
27+
#define elasped_time 1.0 * clock() / CLOCKS_PER_SEC
28+
29+
// Constants
30+
const int MOD = 1e9 + 7;
31+
const ll INF = 1e18;
32+
const double EPS = 1e-9;
33+
const double PI = acos(-1);
34+
35+
ll mod_add(ll a, ll b, ll m = MOD) { return ((a % m) + (b % m)) % m; }
36+
ll mod_sub(ll a, ll b, ll m = MOD) { return ((a % m) - (b % m) + m) % m; }
37+
ll mod_mul(ll a, ll b, ll m = MOD) { return ((a % m) * (b % m)) % m; }
38+
39+
ll mod_pow(ll base, ll exp, ll m = MOD)
40+
{
41+
ll res = 1;
42+
base %= m;
43+
while (exp > 0)
44+
{
45+
if (exp & 1)
46+
res = mod_mul(res, base, m);
47+
base = mod_mul(base, base, m);
48+
exp >>= 1;
49+
}
50+
return res;
51+
}
52+
53+
ll mod_inv(ll a, ll m = MOD)
54+
{
55+
return mod_pow(a, m - 2, m); // Only works if m is prime
56+
}
57+
58+
ll mod_div(ll a, ll b, ll m = MOD)
59+
{
60+
return mod_mul(a, mod_inv(b, m), m);
61+
}
62+
63+
// Binary exponentiation (for non-modular calculations)
64+
ll binpow(ll base, ll exp)
65+
{
66+
ll res = 1;
67+
while (exp > 0)
68+
{
69+
if (exp & 1)
70+
res *= base;
71+
base *= base;
72+
exp >>= 1;
73+
}
74+
return res;
75+
}
76+
77+
/************/
78+
void solve()
79+
{
80+
int n;
81+
cin >> n;
82+
83+
vl arr(n, 0), prefMax(n, LLONG_MIN), suff(n, 0);
84+
85+
forn(i, n)
86+
{
87+
cin >> arr[i];
88+
prefMax[i] = arr[i];
89+
suff[i] = arr[i];
90+
91+
if (i)
92+
prefMax[i] = max(prefMax[i - 1], prefMax[i]);
93+
}
94+
95+
ford(i, n - 2, 0)
96+
suff[i] += suff[i + 1];
97+
98+
ford(i, n - 1, 0)
99+
cout<<(suff[i] - arr[i] + max(arr[i], prefMax[i]))<<" ";
100+
101+
cout << nline;
102+
}
103+
int main()
104+
{
105+
ios_base::sync_with_stdio(0);
106+
cin.tie(0);
107+
cout.tie(0);
108+
109+
#ifndef ONLINE_JUDGE
110+
freopen("./outputs/input.txt", "r", stdin);
111+
freopen("./outputs/output.txt", "w", stdout);
112+
#endif
113+
114+
int t;
115+
cin >> t;
116+
while (t--)
117+
solve();
118+
119+
return 0;
120+
}
121+
// Explanation
122+
/* */

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /