Tìm giá trị lớn nhất
Xem dạng PDF
Mã bài:
timgiatrilonnhat
Điểm:
2 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
512M
Dữ liệu vào:
stdin
Dữ liệu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python, Scratch

Ví dụ
| input | output |
|---|---|
| 7 8 2 4 -2 9 1 -3 |
11 |
Bình luận
include <bits/stdc++.h>
using namespace std;
define nmax 10000010
define ll long long
bool nt[nmax]; ll a[nmax]; ll f[nmax]; void sangnt() { for (ll i=0;i<nmax;i++) nt[i]=1; nt[0]=nt[1]=0; for (long long i=2;ii<nmax;i++) { if (nt[i]) { for (long long j=ii;j<nmax;j+=i) nt[j]=0; } } } bool nttd(ll n) { ll k=n; if(!nt[n]) return 0; n/=10; while (n>0) { if(!nt[n]) return 0; n/=10; } for (ll i=0;i<=9;i++) { if (nt[k*10+i]) return 1; } return 0; } int main() { ios::syncwithstdio(false); cin.tie(nullptr); sangnt(); ll n; cin>>n; ll t=0; for(ll i=1;i<=n;i++) { cin>>a[i]; if(nttd(a[i])) t++; f[i]=t; } ll m; cin>>m; while(m--) { ll u,v; cin>>u>>v; cout<<f[v]-f[u-1]<<'\n'; } return 0; }