#编程练习

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
#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n, k,count,a,b,del;
    int flag = 0;
    int m[1001];
    cin >> n >> k;
    count = n;
    for (int i = 1; i <= n; i++)
        m[i] = 1;
    while (count > 1)
    {
        del = 0;
        for (int i = 1; i <= n; i++)
        {
            if (m[i] != 0) {
                flag++;
                m[i] = flag;
                a = m[i] % k;
                b = m[i] % 10;
                if (a == 0 || b == k)
                {
                    m[i] = 0;
                    del++;
                }
            }
        }
        count = count - del;
    }
    for (int i = 1; i <= n; i++)
    { 
        if (m[i] != 0)
        {
            cout<<i;
        }
    }
    if (k == 1
    {
        cout << n;
    }
    return 0;
}

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
#include<bits/stdc++.h>
using namespace std;
int main() {
int N, L, T;
scanf("%d%d%d", &N, &L, &T);
pair<int, int>ball[N + 1];
int line[L+ 1] = { 0 };
for (int i = 1; i <= N; ++i) {
scanf("%d", &ball[i].first);
ball[i].second = 1;
line[ball[i].first] = i;
}
while (T--)
for (int i = 1; i <= N; ++i) {
line[ball[i].first] = 0;
ball[i].first = ball[i].first + ball[i].second;
if (line[ball[i].first] != 0) {
ball[i].second = -ball[i].second;
ball[line[ball[i].first]].second = -ball[line[ball[i].first]].second;
}else if (ball[i].first == 0 || ball[i].first == L)
ball[i].second = -ball[i].second;
line[ball[i].first] = i;
}
for (int i = 1; i <= N; ++i)
printf("%d ", ball[i].first);
return 0;
}

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
#include <iostream>
using namespace std;

int type;
int grade = 0;
int triple= 1;
int main()
{
while (cin >> type )
{
if (type == 0)
{
cout << grade;
}
else
{
if(type==1)
{
if (grade == 0) grade += 1;
else
{
grade += 1;
triple = 1;
}
}
else
{
grade += 2*triple;
triple += 1;
}
}
}
return 0;
}

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
#include  <iostream>

using namespace std;

const int N = 2005;
struct time {
int x, y;
} h[N], w[N];

int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> h[i].x;
cin >> h[i].y;
}
for (int i = 1; i <= n; i++) {
cin >> w[i].x;
cin >> w[i].y;
}
long long aus = 0;
for (int i = 1, j = 1; i <= n && j <= n;) {
if (h[i].x < w[j].x) {
if (h[i].y <= w[j].x) {
i++;
}
else if (h[i].y <= w[j].y)
{
aus += h[i].y - w[j].x;
i++;
}
else {
aus += w[j].y - w[j].x;
j++;//
}
}
else
{
if (h[i].x >= w[j].y) {
j++;
}
else if (h[i].y >= w[j].y)
{
aus += w[j].y - h[i].x;
j++;
}
else {
aus += h[i].y - h[i].x;
i++;
}
}
}
cout << aus;
return 0;
}

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
#include <iostream>
#include <cstring>
#include <stack>
#include <cstdio>
using namespace std;

int n;
char str[10];

stack<int> num;
stack<char> sign;

int res;

int main()
{
    cin >> n;
    getchar();
    for (int i = 0; i < n; i++)
    {
        res = 0;
        cin >> str;
        while (!num.empty()) num.pop();
        while (!sign.empty()) sign.pop();
        int  j = 0;
        while (j < strlen(str))
        {
            if (str[j] >= '0' && str[j] <='9')
            {
                num.push(str[j] - '0');
            }
            else
                if (str[j] == '+')
                {
                    sign.push(str[j]);
                }
                else
                    if (str[j] == '-')
                    {
                        sign.push('+');
                        num.push((str[j + 1] - '0') * (-1));
                        j++;
                    }
                    else
                        if (str[j] == 'x')
                        {
                            int former = num.top();
                            num.pop();
                            num.push((str[j + 1] - '0') * former);
                            j++;
                        }
                        else
                            if (str[j] == '/')
                            {
                                int former = num.top();
                                num.pop();
                                num.push(former /( str[j + 1] - '0'));
                                j++;
                            }
            j++;
        }
        while (!num.empty())
        {
            res += num.top();
            num.pop();
        }
        if (res == 24
            printf("Yes\n");
        else
            printf("No\n");
    }
    return 0;
}

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
#include <iostream>

using namespace std;

long long res = 0,t;
int r, y, g, n, k;
int time = 0;
int ahead = 0;
int main()
{
cin >> r >> y >> g;
cin >> n;
while (n)
{
cin >> k >> t;
time = r + g + y;
ahead = res % time;
if (k==0)
{
res += t;
}
else if (k == 1) {
if (ahead < t) {
res += t - ahead;
}
else if (ahead >= t && (ahead < t + g)) {
;
}
else if (ahead >= t + g && ahead < t + g + y) {
res += t + g + y - ahead + r;
}
else if (ahead >= t + g + y && ahead < r + g + y) {
res += r + g + y + t - ahead;
}
}
else if (k == 2) {
if (ahead < t) {
res += t - ahead + r;
}
else if (ahead >= t && ahead < t + r) {
res += t + r - ahead;
}
else if (ahead >= t + r && ahead < t + r + g) {
;
}
else if (ahead >= t + r + g && ahead < r + g + y) {
res += r + g + y + t - ahead + r;
}
}
else if(k==3)
{
if (ahead < t) {
;
}
else if (ahead >= t && ahead < t + y) {
res += t + y - ahead + r;
}
else if (ahead >= t + y && ahead < t + r + y) {
res += t + r + y - ahead;
}
else if (ahead >= t + r + y && ahead < r + g + y) {
;
}
}
n--;
}
cout << res;
return 0;

}

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
#include <iostream>;
#include<algorithm>
#include<cmath>

#define maxn 100001

using namespace std;
int n;
int m[maxn];
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> m[i];
}
sort(m, m + n);
if (n % 2 == 1) {
cout << m[n - 1] << " " << m[(n - 1) / 2] << " " << m[0];
}
else {
if ((m[(n - 1) / 2 + 1] + m[(n - 1) / 2]) % 2 == 1) { cout << m[n - 1] << " " << (m[(n - 1) / 2 + 1] + m[(n - 1) / 2]) / 2 << ".5" << " " << m[0]; }
else {
cout << m[n - 1] << " " << (m[(n - 1) / 2 + 1] + m[(n - 1) / 2]) / 2 << " " << m[0];
}
}
return 0;
}

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×