zoukankan      html  css  js  c++  java
  • 2.2.4 Party Lamps

    Party Lamps
    IOI 98

    To brighten up the gala dinner of the IOI'98 we have a set of N (10 <= N <= 100) colored lamps numbered from 1 to N.

    The lamps are connected to four buttons:

    • Button 1: When this button is pressed, all the lamps change their state: those that are ON are turned OFF and those that are OFF are turned ON.
    • Button 2: Changes the state of all the odd numbered lamps.
    • Button 3: Changes the state of all the even numbered lamps.
    • Button 4: Changes the state of the lamps whose number is of the form 3xK+1 (with K>=0), i.e., 1,4,7,...

    A counter C records the total number of button presses.

    When the party starts, all the lamps are ON and the counter C is set to zero.

    You are given the value of counter C (0 <= C <= 10000) and the final state of some of the lamps after some operations have been executed. Write a program to determine all the possible final configurations of the N lamps that are consistent with the given information, without repetitions.

    PROGRAM NAME: lamps

    INPUT FORMAT

    No lamp will be listed twice in the input.

    Line 1: N
    Line 2: Final value of C
    Line 3: Some lamp numbers ON in the final configuration, separated by one space and terminated by the integer -1.
    Line 4: Some lamp numbers OFF in the final configuration, separated by one space and terminated by the integer -1.

    SAMPLE INPUT (file lamps.in)

    10
    1
    -1
    7 -1
    

    In this case, there are 10 lamps and only one button has been pressed. Lamp 7 is OFF in the final configuration.

    OUTPUT FORMAT

    Lines with all the possible final configurations (without repetitions) of all the lamps. Each line has N characters, where the first character represents the state of lamp 1 and the last character represents the state of lamp N. A 0 (zero) stands for a lamp that is OFF, and a 1 (one) stands for a lamp that is ON. The lines must be ordered from least to largest (as binary numbers).

    If there are no possible configurations, output a single line with the single word `IMPOSSIBLE'

    SAMPLE OUTPUT (file lamps.out)

    0000000000
    0101010101
    0110110110
    

    In this case, there are three possible final configurations:

    • All lamps are OFF
    • Lamps 1, 4, 7, 10 are OFF and lamps 2, 3, 5, 6, 8, 9 are ON.
    • Lamps 1, 3, 5, 7, 9 are OFF and lamps 2, 4, 6, 8, 10 are ON.
    • {
      ID: makeeca1
      PROG: lamps
      LANG: PASCAL
      }
      program lamps;
      const ds:array[1..8]of byte=(0,56,21,45,18,42,7,63);//²Ù×÷Êý
            dc:array[1..8]of byte=(1,2,1,1,2,1,2,0); //ËùÐè°ŽŒüÊý
      var s1,s2,n,c,i,j:longint; flag:boolean;
      procedure get(var x:longint);
      var t:longint;
      begin
        read(t);
        while t<>-1 do begin
          x:=x or (1<< (t mod 6));//ÌíŒÓ׎̬
          read(t);
        end;
      end;
      begin
        assign(input,'lamps.in');reset(input);
        assign(output,'lamps.out');rewrite(output);
        readln(n);readln(c);get(s1);get(s2);flag:=true;
        if (s1 and s2=0 )then
          for i:=1 to 8 do
          if (dc[i]<=c)and(ds[i] or s1=ds[i]){ds[]°üº¬s1}and(ds[i]and s2=0){ds[]²»°üº¬s2}then begin
            for j:=1 to n do write((ds[i]>> (j mod 6)) and 1);//žô6λѭ»·
            writeln;
            flag:=false;
          end;
        if flag then writeln('IMPOSSIBLE');
        close(input);close(output);
      end.
  • 相关阅读:
    curl命令学习笔记
    IOS安全测试思维导图
    Hello World
    Hive SQL使用和数据加载的一点总结
    采用最低松弛度优先调度的实时系统调度程序
    MongoDB Map Reduce速度提升20倍的优化宝典
    释放时间不同可中断平行机问题在线算法
    RPC框架系列——Avro
    Solr 3.6.2索引MySQL数据库配置过程
    IKAnalyzer 独立使用 配置扩展词库
  • 原文地址:https://www.cnblogs.com/makeecat/p/3274576.html
Copyright © 2011-2022 走看看