Skip to content

Commit e5df4f8

Browse files
committed
Solve problem 313B, 363B, 433B, A257, A298 and A546
1 parent 60b92b1 commit e5df4f8

File tree

375 files changed

+14998
-14889
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

375 files changed

+14998
-14889
lines changed
Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
1-
#include <iostream>
2-
#include <iomanip>
3-
4-
using namespace std;
5-
6-
int const N = 1e6 + 1;
7-
bool prime[N];
8-
9-
void sieve() {
10-
for (int p = 2; p*p <= N; p++)
11-
if (prime[p] == false)
12-
for (int i = p * 2; i <= N; i += p)
13-
prime[i] = true;
14-
}
15-
16-
int addDigits(int n) {
17-
int tmp = 0;
18-
19-
while(n > 0) {
20-
tmp += n % 10;
21-
n /= 10;
22-
}
23-
24-
return tmp;
25-
}
26-
27-
int main() {
28-
prime[0] = true;
29-
prime[1] = true;
30-
sieve();
31-
32-
int n, tmp;
33-
34-
while(cin >> n && n) {
35-
cout << setw(7) << n << ' ' << setw(7);
36-
37-
if(!prime[n]) {
38-
cout << n << endl;
39-
continue;
40-
}
41-
42-
tmp = n;
43-
while(tmp > 10 && prime[tmp]) tmp = addDigits(tmp);
44-
45-
if(!prime[tmp]) cout << tmp << endl;
46-
else cout << "none" << endl;
47-
}
48-
49-
return 0;
1+
#include <iostream>
2+
#include <iomanip>
3+
4+
using namespace std;
5+
6+
int const N = 1e6 + 1;
7+
bool prime[N];
8+
9+
void sieve() {
10+
for (int p = 2; p*p <= N; p++)
11+
if (prime[p] == false)
12+
for (int i = p * 2; i <= N; i += p)
13+
prime[i] = true;
14+
}
15+
16+
int addDigits(int n) {
17+
int tmp = 0;
18+
19+
while(n > 0) {
20+
tmp += n % 10;
21+
n /= 10;
22+
}
23+
24+
return tmp;
25+
}
26+
27+
int main() {
28+
prime[0] = true;
29+
prime[1] = true;
30+
sieve();
31+
32+
int n, tmp;
33+
34+
while(cin >> n && n) {
35+
cout << setw(7) << n << ' ' << setw(7);
36+
37+
if(!prime[n]) {
38+
cout << n << endl;
39+
continue;
40+
}
41+
42+
tmp = n;
43+
while(tmp > 10 && prime[tmp]) tmp = addDigits(tmp);
44+
45+
if(!prime[tmp]) cout << tmp << endl;
46+
else cout << "none" << endl;
47+
}
48+
49+
return 0;
5050
}
Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
1-
#include <iostream>
2-
#include <algorithm>
3-
#include <vector>
4-
5-
using namespace std;
6-
7-
int const N = 2 * 1e6 + 1;
8-
bool bPrime[N];
9-
vector<int> iPrime;
10-
11-
void sieve() {
12-
for (int p = 2; p <= N; p++)
13-
if (bPrime[p] == false) {
14-
iPrime.push_back(p);
15-
for (int i = p * 2; i <= N; i += p)
16-
bPrime[i] = true;
17-
}
18-
}
19-
20-
int main() {
21-
bPrime[0] = true;
22-
bPrime[1] = true;
23-
sieve();
24-
25-
int n, tmp;
26-
27-
while(cin >> n && n) {
28-
if(!bPrime[n]) cout << 0 << endl;
29-
else {
30-
tmp = lower_bound(iPrime.begin(), iPrime.end(), n) - iPrime.begin();
31-
cout << iPrime[tmp] - iPrime[tmp - 1] << endl;
32-
}
33-
}
34-
35-
return 0;
36-
}
1+
#include <iostream>
2+
#include <algorithm>
3+
#include <vector>
4+
5+
using namespace std;
6+
7+
int const N = 2 * 1e6 + 1;
8+
bool bPrime[N];
9+
vector<int> iPrime;
10+
11+
void sieve() {
12+
for (int p = 2; p <= N; p++)
13+
if (bPrime[p] == false) {
14+
iPrime.push_back(p);
15+
for (int i = p * 2; i <= N; i += p)
16+
bPrime[i] = true;
17+
}
18+
}
19+
20+
int main() {
21+
bPrime[0] = true;
22+
bPrime[1] = true;
23+
sieve();
24+
25+
int n, tmp;
26+
27+
while(cin >> n && n) {
28+
if(!bPrime[n]) cout << 0 << endl;
29+
else {
30+
tmp = lower_bound(iPrime.begin(), iPrime.end(), n) - iPrime.begin();
31+
cout << iPrime[tmp] - iPrime[tmp - 1] << endl;
32+
}
33+
}
34+
35+
return 0;
36+
}
Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
1-
#include <iostream>
2-
#include <string>
3-
4-
using namespace std;
5-
6-
int main() {
7-
string s1, s2;
8-
int freq[26];
9-
bool f;
10-
11-
for(int c = 1; cin >> s1 >> s2 && s1 != "END" && s2 != "END"; c++) {
12-
for(int i = 0; i < 26; i++) freq[i] = 0;
13-
f = true;
14-
15-
for(int i = 0; i < s1.length(); i++)
16-
freq[s1[i] - 'a']++;
17-
18-
for(int i = 0; i < s2.length(); i++)
19-
freq[s2[i] - 'a']--;
20-
21-
for(int i = 0; i < 26; i++)
22-
if(freq[i]) {
23-
f = false;
24-
break;
25-
}
26-
27-
cout << "Case "<< c << ": ";
28-
29-
if(f) cout << "same";
30-
else cout << "different";
31-
32-
cout << endl;
33-
}
34-
35-
return 0;
36-
}
1+
#include <iostream>
2+
#include <string>
3+
4+
using namespace std;
5+
6+
int main() {
7+
string s1, s2;
8+
int freq[26];
9+
bool f;
10+
11+
for(int c = 1; cin >> s1 >> s2 && s1 != "END" && s2 != "END"; c++) {
12+
for(int i = 0; i < 26; i++) freq[i] = 0;
13+
f = true;
14+
15+
for(int i = 0; i < s1.length(); i++)
16+
freq[s1[i] - 'a']++;
17+
18+
for(int i = 0; i < s2.length(); i++)
19+
freq[s2[i] - 'a']--;
20+
21+
for(int i = 0; i < 26; i++)
22+
if(freq[i]) {
23+
f = false;
24+
break;
25+
}
26+
27+
cout << "Case "<< c << ": ";
28+
29+
if(f) cout << "same";
30+
else cout << "different";
31+
32+
cout << endl;
33+
}
34+
35+
return 0;
36+
}
Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
#include <iostream>
2-
#include <vector>
3-
4-
using namespace std;
5-
6-
int main() {
7-
vector<int> arr;
8-
int n, m, c;
9-
10-
while(cin >> n >> m) {
11-
c = 0;
12-
arr.clear();
13-
arr.resize(n);
14-
for(int i = 0; i < n; i++) cin >> arr[i];
15-
16-
for(int i = 0; i < arr.size(); i++)
17-
if(m >= arr[i]) {
18-
m -= arr[i];
19-
c++;
20-
} else break;
21-
22-
cout << c << endl;
23-
}
24-
25-
return 0;
26-
}
1+
#include <iostream>
2+
#include <vector>
3+
4+
using namespace std;
5+
6+
int main() {
7+
vector<int> arr;
8+
int n, m, c;
9+
10+
while(cin >> n >> m) {
11+
c = 0;
12+
arr.clear();
13+
arr.resize(n);
14+
for(int i = 0; i < n; i++) cin >> arr[i];
15+
16+
for(int i = 0; i < arr.size(); i++)
17+
if(m >= arr[i]) {
18+
m -= arr[i];
19+
c++;
20+
} else break;
21+
22+
cout << c << endl;
23+
}
24+
25+
return 0;
26+
}

CodeChef/Compilers and parsers.cpp

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
#include <iostream>
2-
#include <string>
3-
4-
using namespace std;
5-
6-
int main() {
7-
int t;
8-
cin >> t;
9-
10-
string s;
11-
int ans, opens;
12-
while(t--) {
13-
cin >> s;
14-
15-
ans = opens = 0;
16-
17-
for(int i = 0; i < s.length(); i++)
18-
if(s[i] == '<')
19-
opens++;
20-
else {
21-
opens--;
22-
23-
if(opens == 0) ans = i + 1;
24-
if(opens < 0) break;
25-
}
26-
27-
cout << ans << endl;
28-
}
29-
30-
return 0;
31-
}
1+
#include <iostream>
2+
#include <string>
3+
4+
using namespace std;
5+
6+
int main() {
7+
int t;
8+
cin >> t;
9+
10+
string s;
11+
int ans, opens;
12+
while(t--) {
13+
cin >> s;
14+
15+
ans = opens = 0;
16+
17+
for(int i = 0; i < s.length(); i++)
18+
if(s[i] == '<')
19+
opens++;
20+
else {
21+
opens--;
22+
23+
if(opens == 0) ans = i + 1;
24+
if(opens < 0) break;
25+
}
26+
27+
cout << ans << endl;
28+
}
29+
30+
return 0;
31+
}

CodeChef/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
# Problems links
2-
3-
- [Compilers and parsers](https://www.codechef.com/problems/COMPILER)
1+
# Problems links
2+
3+
- [Compilers and parsers](https://www.codechef.com/problems/COMPILER)

0 commit comments

Comments
 (0)