The eleventh day of intensive training at Nanjing Foreign Language School.
第一题暴力
第二题还是暴力
第三题思路是对的,但是解法是错的
#include <bits/stdc++.h>
using namespace std;
int a[505000], b[505000], n, ans;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
cin >> b[i];
}
int l = 1, r = n;
sort(a + 1, a + 1 + n);
sort(b + 1, b + 1 + n);
while (l <= n && b[r] > 0) {
if (a[l] + b[r] < 0) {
ans++;
l++;
}
r--;
}
l = 1, r = n;
while (l <= n && a[r] > 0) {
if (a[r] + b[l] < 0) {
ans++;
l++;
}
r--;
}
cout << ans;
return 0;
}
第四题模拟,判断有误,导致90
#include <bits/stdc++.h>
using namespace std;
int n;
string a;
int main() {
cin >> n;
while (n) {
cin >> a;
int len = a.size();
int k = 0;
bool r = false;
for (int i = 0; i < len; i++) {
if (a[i] != ':' && r == false) {
r = true;
k++;
} else if (a[i] == ':') {
r = false;
}
}
k = 8 - k;
for (int i = 0; i < len; i++) {
if (a[i] == ':' && a[i + 1] == ':') {
bool bb = false;
if (i == 0) {
bb = true;
}
if (i == len - 2) {
k--;
}
if (k == 1 && i == 0) {
cout << "0000:";
k = 0;
}
while (k) {
if (k == 1) {
cout << ":0000:";
} else if (bb == true) {
cout << "0000";
bb = false;
} else {
cout << ":0000";
}
k--;
}
i = i + 2;
}
int x = 0;
if (a[i - 1] == ':' || i == 0) {
for (int j = 0; j < 4; j++) {
if (a[i + j] == ':' || i + j == len) {
x = 4 - j;
break;
}
}
for (int j = 1; j <= x; j++) {
cout << "0";
}
for (int j = 0; j <= 3 - x; j++) {
cout << a[i + j];
}
i += 3 - x;
} else {
cout << a[i];
}
}
cout << endl;
n--;
}
return 0;
}