Skip to content

Commit ae34c37

Browse files
committed
more training
1 parent 069be80 commit ae34c37

File tree

15 files changed

+1446
-0
lines changed

15 files changed

+1446
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
template<typename T> ostream& operator<<(ostream &os, const vector<T> &v) { os << "{"; for (typename vector<T>::const_iterator vi = v.begin(); vi != v.end(); ++vi) { if (vi != v.begin()) os << ", "; os << *vi; } os << "}"; return os; }
5+
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { os << '(' << p.first << ", " << p.second << ')'; return os; }
6+
7+
typedef long long ll;
8+
typedef long double ld;
9+
typedef pair<int,int> pii;
10+
11+
#define optimize ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
12+
#define endl "\n"
13+
14+
#define fi first
15+
#define se second
16+
#define pb push_back
17+
18+
#define all(x) x.begin(),x.end()
19+
#define ms(x,a) memset(x,a,sizeof(x))
20+
21+
#define INF 0x3f3f3f3f
22+
#define INFLL 0x3f3f3f3f3f3f3f3f
23+
24+
#define mod 1000000007LL
25+
#define MAXN 110
26+
27+
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
28+
29+
//#define _DEBUG
30+
// #ifdef _DEBUG
31+
// #endif
32+
33+
/* -------------------------------- Solution starts below -------------------------------- */
34+
35+
ll T,N,M,K;
36+
int A[MAXN][MAXN];
37+
int floyd[MAXN][MAXN];
38+
39+
void solve() {
40+
41+
cin >> N >> M;
42+
43+
ms(floyd, 0x3f);
44+
45+
for(int i = 0; i < N; i++) {
46+
for(int j = 0; j < N; j++) {
47+
cin >> A[i][j];
48+
if(A[i][j]) floyd[i][j] = 1;
49+
}
50+
}
51+
52+
53+
for(int k = 0; k < N; k++) {
54+
for(int i = 0; i < N; i++) {
55+
for(int j = 0; j < N; j++) {
56+
floyd[i][j] = min(floyd[i][j], floyd[i][k] + floyd[k][j]);
57+
}
58+
}
59+
}
60+
61+
cin >> K;
62+
63+
for(ll i = 0, u, v; i < K; i++) {
64+
cin >> u >> v;
65+
66+
u--, v--;
67+
68+
if(u == v) cout << 0 << endl;
69+
else {
70+
u = u % N;
71+
v = v % N;
72+
73+
if(floyd[u][v] == INF) cout << -1 << endl;
74+
else cout << floyd[u][v] << endl;
75+
}
76+
77+
}
78+
}
79+
80+
int main() {
81+
82+
optimize;
83+
84+
T = 1;
85+
86+
//cin >> T;
87+
88+
while(T--) {
89+
solve();
90+
}
91+
92+
return 0;
93+
}
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
template<typename T> ostream& operator<<(ostream &os, const vector<T> &v) { os << "{"; for (typename vector<T>::const_iterator vi = v.begin(); vi != v.end(); ++vi) { if (vi != v.begin()) os << ", "; os << *vi; } os << "}"; return os; }
5+
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { os << '(' << p.first << ", " << p.second << ')'; return os; }
6+
7+
typedef long long ll;
8+
typedef long double ld;
9+
typedef pair<int,int> pii;
10+
11+
#define optimize ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
12+
#define endl "\n"
13+
14+
#define fi first
15+
#define se second
16+
#define pb push_back
17+
18+
#define all(x) x.begin(),x.end()
19+
#define ms(x,a) memset(x,a,sizeof(x))
20+
21+
#define INF 0x3f3f3f3f
22+
#define INFLL 0x3f3f3f3f3f3f3f3f
23+
24+
#define mod 1000000007LL
25+
#define MAXN 200010
26+
27+
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
28+
29+
//#define _DEBUG
30+
// #ifdef _DEBUG
31+
// #endif
32+
33+
/* -------------------------------- Solution starts below -------------------------------- */
34+
35+
ll T,N,M,K;
36+
37+
void solve() {
38+
39+
cin >> N >> M;
40+
41+
ll ans = 0;
42+
43+
while(N && M) {
44+
ll g = __gcd(N, M);
45+
46+
if(g > 1) {
47+
ans += 1;
48+
N = N / g - 1;
49+
M = M / g - 1;
50+
continue;
51+
}
52+
53+
if(N < M) swap(N, M);
54+
55+
ll d = N - M;
56+
ll b = 0;
57+
58+
for(ll i = 1; i * i <= d; i++) {
59+
if(d % i != 0) continue;
60+
61+
// para todos os divisores de i
62+
ll x = d / i;
63+
64+
// maior valor de x < N que tenha o gcd diferente de 1 com d
65+
// dado que N > M e N = M + d
66+
// gcd(N, M) = gcd(d, M)
67+
68+
if((M / i) * i < M) b = max(b, (M / i) * i);
69+
if((M / x) * x < M) b = max(b, (M / x) * x);
70+
}
71+
72+
ans += M - b;
73+
N = b + d;
74+
M = b;
75+
}
76+
77+
cout << ans << endl;
78+
}
79+
80+
int main() {
81+
82+
optimize;
83+
84+
T = 1;
85+
86+
while(T--) {
87+
solve();
88+
}
89+
90+
return 0;
91+
}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
template<typename T> ostream& operator<<(ostream &os, const vector<T> &v) { os << "{"; for (typename vector<T>::const_iterator vi = v.begin(); vi != v.end(); ++vi) { if (vi != v.begin()) os << ", "; os << *vi; } os << "}"; return os; }
5+
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { os << '(' << p.first << ", " << p.second << ')'; return os; }
6+
7+
typedef long long ll;
8+
typedef long double ld;
9+
typedef pair<int,int> pii;
10+
11+
#define optimize ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
12+
#define endl "\n"
13+
14+
#define fi first
15+
#define se second
16+
#define pb push_back
17+
18+
#define all(x) x.begin(),x.end()
19+
#define ms(x,a) memset(x,a,sizeof(x))
20+
21+
#define INF 0x3f3f3f3f
22+
#define INFLL 0x3f3f3f3f3f3f3f3f
23+
24+
#define mod 1000000007LL
25+
#define MAXN 7070
26+
27+
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
28+
29+
//#define _DEBUG
30+
// #ifdef _DEBUG
31+
// #endif
32+
33+
/* -------------------------------- Solution starts below -------------------------------- */
34+
35+
ll T,N,M,K;
36+
int A[MAXN];
37+
38+
void f(int l, int r) {
39+
while(l < r) swap(A[l++], A[r--]);
40+
}
41+
42+
void g() {
43+
vector<tuple<int,int,int,int>> m1, m2, m3;
44+
45+
for(int i = 0 ; i < N; i++) {
46+
for(int j = i; j < N; j++) {
47+
if(A[i] == A[j]) m2.emplace_back(-i, A[j], -j, -A[i]);
48+
else if(A[i] < A[j]) m3.emplace_back(-i, A[j], -j, -A[i]);
49+
else m1.emplace_back( i, A[j], j, -A[i]);
50+
}
51+
}
52+
53+
M--;
54+
if(M < m1.size()) {
55+
sort(m1.begin(), m1.end());
56+
int l = get<0> (m1[M]);
57+
int r = get<2> (m1[M]);
58+
f(l, r);
59+
}
60+
else if(M < m1.size() + m2.size()) {
61+
return;
62+
}
63+
else {
64+
sort(m3.begin(), m3.end());
65+
M -= m1.size() + m2.size();
66+
int l = -get<0> (m3[M]);
67+
int r = -get<2> (m3[M]);
68+
f(l, r);
69+
}
70+
}
71+
72+
void solve() {
73+
74+
cin >> N >> M;
75+
76+
for(int i = 0; i < N; i++) cin >> A[i];
77+
78+
g();
79+
80+
for(int i = 0; i < N; i++) cout << A[i] << " \n"[i == N - 1];
81+
}
82+
83+
int main() {
84+
85+
optimize;
86+
87+
T = 1;
88+
89+
//cin >> T;
90+
91+
while(T--) {
92+
solve();
93+
}
94+
95+
return 0;
96+
}
97+
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
template<typename T> ostream& operator<<(ostream &os, const vector<T> &v) { os << "{"; for (typename vector<T>::const_iterator vi = v.begin(); vi != v.end(); ++vi) { if (vi != v.begin()) os << ", "; os << *vi; } os << "}"; return os; }
5+
template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { os << '(' << p.first << ", " << p.second << ')'; return os; }
6+
7+
typedef long long ll;
8+
typedef long double ld;
9+
typedef pair<int,int> pii;
10+
11+
#define optimize ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
12+
#define endl "\n"
13+
14+
#define fi first
15+
#define se second
16+
#define pb push_back
17+
18+
#define all(x) x.begin(),x.end()
19+
#define ms(x,a) memset(x,a,sizeof(x))
20+
21+
#define INF 0x3f3f3f3f
22+
#define INFLL 0x3f3f3f3f3f3f3f3f
23+
24+
#define mod 1000000007LL
25+
#define MAXN 200010
26+
27+
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
28+
29+
//#define _DEBUG
30+
// #ifdef _DEBUG
31+
// #endif
32+
33+
/* -------------------------------- Solution starts below -------------------------------- */
34+
35+
ll T,N,M,K;
36+
37+
void solve() {
38+
39+
string s;
40+
cin >> s;
41+
42+
int ans = 1;
43+
44+
for(int i = 1; i <= 15; i+= 2) {
45+
if(s[i] != '0') {
46+
ans = 0;
47+
}
48+
}
49+
50+
if(ans) cout << "Yes\n";
51+
else cout << "No\n";
52+
}
53+
54+
int main() {
55+
56+
optimize;
57+
58+
T = 1;
59+
60+
//cin >> T;
61+
62+
while(T--) {
63+
solve();
64+
}
65+
66+
return 0;
67+
}

0 commit comments

Comments
 (0)