CSPS T3 代码求调
  • 板块学术版
  • 楼主FLY_lai
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/22 15:26
  • 上次更新2023/11/2 11:53:31
查看原帖
CSPS T3 代码求调
488052
FLY_lai楼主2023/10/22 15:26

rt,写了个 15pts 的部分分,但是 0pts。

#include <bits/stdc++.h>

using namespace std;

long long n;


long long szof(string s) {
	if (s == "byte")
		return 1;
	if (s == "short")
		return 2;
	if (s == "int")
		return 4;
	return 8;
}

long long sum[105];

int main() {
	cin >> n; 
	map<string, long long> mp;
	map<long long, string> mp2;
	sum[0] = 0;
	string t, nam, s;
	long long addr;
	for (long long i = 1, cur = 0, op; i <= n; i++) {
		cin >> op;
		if (op == 2) {
			cin >> t >> nam;
			cout << sum[cur] << endl;
			mp[nam] = sum[cur];
			mp2[cur] = nam;
			cur++;
			sum[cur] = sum[cur - 1] + szof(t);
		}
		else if (op == 3) {
			cin >> s;
			cout << mp[s] << endl;
		}
		else {
			cin >> addr;
			if (addr >= s[cur]) {
				puts("ERR");
				continue;
			}
			int l = 0, r = cur;
			while (r - l > 1) {
				int mid = (l + r) / 2;
				if (sum[mid] <= addr)
					l = mid;
				else
					r = mid;
			}
			cout << mp2[r] << endl;
		}
	}
	return 0;
}
2023/10/22 15:26
加载中...