1 条题解

  • 0
    @ 2025-8-4 16:52:05

    O(nlogn)O(nlogn) 模拟

    密码升序排序后,遍历找到最小能打开的密码箱。

    判断能否打开:密码从末尾保留和数字相同的位数,判断是否相等。

    #include<bits/stdc++.h>
    using namespace std;
    int a[10010];
    
    int main(){
    	int n, q;
    	cin >> n >> q;
    	for(int i = 1; i <= n; ++i) cin >> a[i];
    	sort(a + 1, a + n + 1);
    	for(int i = 1; i <= q; ++i){
    		int len, num;
    		cin >> len >> num;
    		bool flag = false;
    		for(int j = 1; j <= n; ++j){
    			int chu = pow(10, len);
    			if(a[j] % chu == num){
    				cout << a[j] << endl;
    				flag = true;
    				break;
    			} 
    		}
    		if(!flag) cout << "-1" << endl;
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    488
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    5
    已通过
    3
    上传者