欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

华为笔试——C++最高分问题

程序员文章站 2022-06-22 11:47:44
题目介绍:现在输入一组数据,写入学生的考试分数。已知学生数为N,学生编号为1到N,且0

题目介绍:现在输入一组数据,写入学生的考试分数。已知学生数为n,学生编号为1到n,且0<n<=30000,每个学生都有一个分数;操作数为m且0<m<5000。输入第一行为n m,接下来是1行n列数据代表学生的初试分数,接下来是m行操作数据。已知操作有两种,分为q和u。一次操作的格式为 c a b,当c=q时输出a到b(包括a和b)的学生最高分,当c=u时将id为a的学生的分数写入为b。

例:

输入:

5 7

1 2 3 4 5

q 1 5

u 3 6

q 3 4

q 4 5

u 4 5

u 2 9

q 1 5

输出:

5

6

5

9

分析:一开始是设想char一个m行3列的数组,但是考虑到id和分数都可能不是个位数因此还是分别设置好了。查询指令中a不一定比b小这一点也要考虑到。

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int m, n;
 6     int result = 0;
 7     while (cin >> n >> m)
 8     {
 9         int *score = new int[n];
10         for (int i = 0; i < n; i++)
11         {
12             cin >> score[i];
13         }
14         char *cha = new char[m];
15         int *one = new int[m];
16         int *two = new int[m];
17         for (int i = 0; i < m; i++)
18         {
19             cin >> cha[i] >> one[i] >> two[i];
20         }
21         for (int i = 0; i < m; i++)
22         {
23             if (cha[i] == 'q')
24             {
25                 if (two[i] > one[i])
26                 {
27                     for (int j = one[i] - 1; j <= two[i] - 1; j++)
28                     {
29                         if (score[j] >= result)
30                         {
31                             result = score[j];
32                         }
33                     }
34                 }
35                 else {
36                     for (int j = two[i] - 1; j <= one[i] - 1; j++)
37                     {
38                         if (score[j] >= result)
39                         {
40                             result = score[j];
41                         }
42                     }
43                 }
44                 cout << result << endl;
45                 result = 0;
46             }
47             if (cha[i] == 'u')
48             {
49                 score[one[i] - 1] = two[i];
50             }
51         }
52     }
53 }

结果:

华为笔试——C++最高分问题

 

上一篇: 大暑喝什么茶好

下一篇: Flask