Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- bool find_fixed(vector<int>&v, int x, int&temp){
- int l = 0;
- int r = v.size()-1;
- while(r-l > 1){
- int m = (l+r)/2;
- if(v[m]+x >= m+1){
- r = m;
- }
- else{
- l = m;
- }
- }
- if(v[l]+x == l+1){
- temp = l;
- return true;
- }
- else if(v[r]+x == r+1){
- temp = r;
- return true;
- }
- else return false;
- }
- int main(){
- int n, j=1;
- while(cin>>n){
- vector<int> v(n,0);
- for(int i=0; i<n; ++i){
- cin>>v[i];
- }
- int m,x;
- cin>>m;
- cout<<"Sequence #"<<j<<endl;
- for(int i=0;i<m;++i){
- cin>>x;
- int temp;
- if(find_fixed(v,x,temp)){
- cout<<"fixed point for "<<x<<": "<<temp+1<<endl;
- }
- else cout<<"no fixed point for "<<x<<endl;
- }
- ++j;
- cout<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement