Submissions

According to the contest rules, you cannot view your submission details at current.

Contest Clarifications

  • Subject: General Issue | @ 2025-1-22 15:07:19

    我递交了,怎么说我没有递交试题呢?怎样递交试题,谢谢

    • Subject: D1. 门游戏 | @ 2025-1-22 15:03:45

      #include <iostream> #include <vector> #include <algorithm>

      using namespace std;

      int main() { int l, r, L, R; cin >> l >> r >> L >> R;

      int start_l = l - 1;
      int end_r = r - 1;
      int start_L = L - 1;
      int end_R = R - 1;
      
      vector<bool> A_range(100, false);
      vector<bool> B_range(100, false);
      
      for (int i = start_l; i <= end_r; ++i) {
          A_range[i] = true;
      }
      
      for (int i = start_L; i <= end_R; ++i) {
          B_range[i] = true;
      }
      
      int locked_doors = 0;
      
      for (int i = 0; i < 100; ++i) {
          if (A_range[i] && B_range[i]) {
              ++locked_doors;
          }
      }
      
      cout << locked_doors << endl;
      
      return 0;
      

      }

      • Subject: C1. 马原课上的提问 | @ 2025-1-22 14:59:18

        #include <iostream> #include <vector>

        using namespace std;

        int main() { int n, m, k, u, v; cin >> n >> m >> k >> u >> v;

        vector<vector<int>> questions(n, vector<int>(m, 0));
        
        int row = 0, col = 0;
        bool goingRight = true;
        
        for (int count = 0; count < k; ++count) {
            questions[row][col]++;
        
            if (goingRight) {
                if (col + 1 < m) {
                    col++;
                } else if (row + 1 < n) {
                    row++;
                    goingRight = false;
                } else {
                    break;
                }
            } else {
                if (col - 1 >= 0) {
                    col--;
                } else if (row + 1 < n) {
                    row++;
                    goingRight = true;
                } else {
                    break;
                }
            }
        
            if (row == n - 1 && (goingRight ? col == m - 1 : col == 0)) {
                if (row > 0) {
                    row--;
                    goingRight = !goingRight;
                    if (goingRight) {
                        col = 0;
                    } else {
                        col = m - 1;
                    }
                } else {
                    break;
                }
            }
        }
        
        int xiaoWenQuestions = questions[u - 1][v - 1];
        
        int maxQuestions = 0, minQuestions = k;
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < m; ++j) {
                if (questions[i][j] > maxQuestions) {
                    maxQuestions = questions[i][j];
                }
                if (questions[i][j] < minQuestions) {
                    minQuestions = questions[i][j];
                }
            }
        }
        
        cout << xiaoWenQuestions << " " << maxQuestions << " " << minQuestions << endl;
        
        return 0;
        

        }

        • Subject: B1. 无悖灾厄的雪域 | @ 2025-1-22 14:56:17

          #include <iostream> #include <vector> #include <algorithm>

          using namespace std;

          int main() { int n, k, l; cin >> n >> k >> l;

          vector<int> wolves(n);
          for (int i = 0; i < n; ++i) {
              cin >> wolves[i];
          }
          
          
          sort(wolves.begin(), wolves.end());
          
          
          int invader_position = 0;
          int time = 0;
          
          while (invader_position < l) {
           
              int closest_wolf = -1;
              for (int i = 0; i < n; ++i) {
                  if (wolves[i] <= invader_position) {
                      closest_wolf = wolves[i];
                  } else {
                      break;
                  }
              }
          
          
              if (closest_wolf != -1 && invader_position - closest_wolf < k) {
               
                  invader_position = closest_wolf + k;
                  time += (invader_position - closest_wolf) * 2; 
              } else {
                 
                  invader_position = l;
                  break;
              }
          }
          
          cout << time << endl;
          
          return 0;
          

          }

          • Subject: D1. 门游戏 | @ 2025-1-22 14:47:18

            #include <stdio.h>

            int minLocks(int l, int r, int L, int R) { if (r < L || l > R) { return 0; } else { return 2; } }

            int main() { int l, r, L, R; scanf("%d %d %d %d", &l, &r, &L, &R); int result = minLocks(l, r, L, R); printf("%d\n", result); return 0; }

            • Subject: A1. 消消乐 | @ 2025-1-22 14:41:34

              #include <iostream> #include <vector> #include <algorithm> #include <cmath> #include <unordered_set>

              using namespace std;

              // 检查两个数是否互质 bool isCoprime(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a == 1; }

              // 计算最大分数和可以消除的对数 pair<int, int> getMaxScoreAndCount(vector<int>& nums) { int n = nums.size(); vector<int> dp(n, 0); unordered_set<int> used; int maxScore = 0; int count = 0;

              for (int i = 0; i < n; ++i) {
                  for (int j = 0; j < i; ++j) {
                      int x = nums[i], y = nums[j];
                      int diff = x * x - y * y;
                      int sqrtDiff = sqrt(diff);
                      if (sqrtDiff * sqrtDiff == diff) {
                          int z = sqrtDiff;
                          if (isCoprime(y, z)) {
                              if (used.find(j) == used.end()) {
                                  int score = x + y;
                                  dp[i] = max(dp[i], dp[j] + score);
                                  maxScore = max(maxScore, dp[i]);
                                  count++;
                              }
                          }
                      }
                  }
                  if (dp[i] > 0) {
                      used.insert(i);
                  }
              }
              
              return {count, maxScore};
              

              }

              int main() { int a, b; cin >> a >> b; vector<int> nums(b - a + 1); for (int i = 0; i <= b - a; ++i) { nums[i] = a + i; }

              auto result = getMaxScoreAndCount(nums);
              cout << result.first << " " << result.second << endl;
              
              return 0;
              

              }

              2025算法组WoC热身赛 #1

              Not Attended
              Status
              Done
              Rule
              IOI
              Problem
              4
              Start at
              2025-1-22 14:00
              End at
              2025-1-22 16:00
              Duration
              2 hour(s)
              Host
              Partic.
              33