QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#343557 | #3058. Assignment Algorithm | PetroTarnavskyi# | TL | 0ms | 0kb | C++20 | 943b | 2024-03-02 19:02:20 | 2024-03-02 19:02:20 |
answer
#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define RFOR(i, a, b) for(int i = (a) - 1; i >= (b); i--)
#define SZ(a) int(a.size())
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define F first
#define S second
typedef long long LL;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef double db;
//pos 0-indexed
int find(int v, int sz, int pos)
{
if(pos == sz - 1)
return v / 2;
sz = (sz - 1) / 2;
if(pos < sz)
return find(2 * v, sz, pos);
return find(2 * v + 1, sz, pos - sz);
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int k, q;
cin >> k >> q;
int sz = (1 << k) - 1;
while(q--)
{
int sum = 0;
int l, d, m;
cin >> l >> d >> m;
l--;
FOR(i, 0, m)
sum += find(1, sz, l + i * d);
cout << sum << "\n";
}
return 0;
}
详细
Test #1:
score: 0
Time Limit Exceeded
input:
2 17 ........... ---.#--.--- ........... ---.---.--- ...........