제출 #1301337

#제출 시각아이디문제언어결과실행 시간메모리
1301337mduchelloBubble Sort 2 (JOI18_bubblesort2)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define nmax 1000007 typedef long long ll; typedef pair<int,int> pii; int n, q; ll a[nmax]; int vt[nmax]; ll val[nmax]; // Compression vector vector<pair<ll, pii>> b; // Rời rạc hóa giá trị void roirac() { sort(b.begin(), b.end()); int counter = 1; if(b[0].second.second) a[b[0].second.first] = 1; else val[b[0].second.first] = 1; for(int i = 1; i < b.size(); i++) { if(b[i].first != b[i-1].first) counter++; if(b[i].second.second) a[b[i].second.first] = counter; else val[b[i].second.first] = counter; } } // Tính số lần pass sau mỗi query (chỉ áp dụng khi n, q <= 8000) vector<int> sub3() { vector<int> res; int b2[nmax]; for(int k = 1; k <= q; k++) { a[vt[k]] = val[k]; for(int i = 1; i <= n; i++) b2[i] = a[i]; sort(b2 + 1, b2 + n + 1); vector<queue<int>> mp(8007); for(int i = 1; i <= n; i++) mp[b2[i]].push(i); int pass = 0; for(int i = 1; i <= n; i++) { int correct_pos = mp[a[i]].front(); mp[a[i]].pop(); if(i > correct_pos) pass = max(pass, i - correct_pos); } res.push_back(pass); } return res; } // Hàm countScans theo yêu cầu vector<int> countScans(vector<ll>& A, vector<int>& X, vector<ll>& V) { n = A.size(); q = X.size(); for(int i = 0; i < n; i++) { a[i+1] = A[i]; b.push_back({A[i], {i+1, 1}}); } for(int i = 0; i < q; i++) { vt[i+1] = X[i]; // giả sử X[i] 0-based val[i+1] = V[i]; b.push_back({V[i], {i+1, 0}}); } roirac(); if(n <= 8000 && q <= 8000) return sub3(); }

컴파일 시 표준 에러 (stderr) 메시지

bubblesort2.cpp: In function 'std::vector<int> countScans(std::vector<long long int>&, std::vector<int>&, std::vector<long long int>&)':
bubblesort2.cpp:72:1: warning: control reaches end of non-void function [-Wreturn-type]
   72 | }
      | ^
/usr/bin/ld: /tmp/cclKpVdb.o: in function `main':
grader.cpp:(.text.startup+0x189): undefined reference to `countScans(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status